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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC调用C动态库函数-----待补充相关的知识,希望对你有一定的参考价值。

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

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

 

1VC可以编译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;
}
3dll的简单调用:
#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;
}

 

以上是关于MFC调用C动态库函数-----待补充的主要内容,如果未能解决你的问题,请参考以下文章

VC6.0的程序结束后进程不自动结束,如何解决?

在VS2015中用C++创建MFC规则动态库DLL

mfc 时钟 OnTimer 非静态成员函数的非法调用

linux 下的动态库制作 以及在python 中如何调用 c 函数库

MFC中char*,string和CString之间的转换(待补充)

MFC规则动态库