本文目录一览:
如何在C语言中调用C++编写的DLL中的函数
C语言没办法直接调用C++库
要调用C++的库
必须加一层封装
即 先写一个C++文件, 对每个要调用的C++DLL中的函数func_name, 封装成
extern "C"
{
return_type func_name_C(list)
{
return func_name(list);
}
}
这样的形式。
然后 把这个c++文件, 封装成dll
C文件调用这个dll里面的函数, 间接调用原始DLL
C语言如何调用DLL
//dll
#include windows.h
extern "C" //保持C语言文件
void _declspec ( dllexport ) tryProc() //定义函数
{
MessageBox(NULL,_T("a"),_T("a"),MB_OK);
}
-------------------------------------
//C
#include windows.h
int main()
{
HMOUDLE dll = LoadLibrary(/*DLL文件名*/);
if(dll != NULL)
{
FARPROC try = GetProcAddress(dll,"tryProc");
if(try != NULL)
{
tryProc();//假如函数有返回值,可以用try()得到返回值
/*_asm call tryProc*/
}
}
return 0;
}
C语言调用dll
这个相对路径是你当前代码存放的位置.
实际应用中相对路径比绝对路径实用多了.
比如你可以再代码路径上再创建一个文件夹,命令dll,里面放所有的dll文件
那么你此时路径".\\dll\\test.dll"
你可以发给我,我帮你看看
c语言怎么调用dll文件
(1)编写程序时,你要包含(#include "什么.h") dll文件作者提供 的 头文件(.h文件) 。
程序里,便和普通函数调用一样,去调用它的函数。
(2)程序编译时,你要链接 dll文件作者提供 的 (.lib文件) 库文件。
当然,你可以在源程序里把.lib 名字 写上,编译时自动去链接,例子:
#pragma comment (lib, "什么.lib")
(3)执行时,要有 .dll 文件. 放在当前文件夹或系统文件夹里。