MFC调用C动态库函数-----待补充

界面用MFC写 后台用写好的C程序就行了

C写的程序编译为dll,把用到的功能做成导出函数,在C++ w/MFC程序中调用

1、VC可以编译C函数动态库;

2、简单的dll编写例子(以最简单的两数相加函数为例):

创建工程项目Win32 Dynamic-Link Library.

加入头文件及源文件比如dll.h dll.cpp,

在头文件中:

#ifndef DLL_H

#define DLL_H

extern"C" int __declspec(dllexport)add(int x, int y);

#endif

在源文件中:

#include "dll.h"

int add(int x, int y)

{

return x + y;

}

3、dll的简单调用:

#include <stdio.h>

#include <windows.h>

typedef int(*lpAddFun)(int, int); //宏定义函数指针类型

int main(int argc, char *argv[])

{

HINSTANCE hDll; //DLL句柄

lpAddFun addFun; //函数指针

hDll = LoadLibrary("..\\Debug\\dll.dll"); //这个是你上个工程dll所在的路径,当然你可以直接把DLL拷贝到当前工程,这样直接写hDll = LoadLibrary("dll.dll");

if (hDll != NULL)

{

addFun = (lpAddFun)GetProcAddress(hDll, "add");

if (addFun != NULL)

{

int result = addFun(2, 3);

printf("%d", result);//MFC里面改成AfxMessageBox进行测试

}

FreeLibrary(hDll); //用完最后别忘记释放

}

return 0;

}