c语言直接调用dll函数 c++调用c的dll

C语言调用dll这个相对路径是你当前代码存放的位置.
实际应用中相对路径比绝对路径实用多了.
比如你可以再代码路径上再创建一个文件夹,命令dll,里面放所有的dll文件
那么你此时路径".\\dll\\test.dll"
你可以发给我,我帮你看看
如何在C语言中调用C++编写的DLL中的函数C语言没办法直接调用C++库
要调用C++c语言直接调用dll函数的库
必须加一层封装
即 先写一个C++文件c语言直接调用dll函数,对每个要调用c语言直接调用dll函数的C++DLL中的函数func_namec语言直接调用dll函数 ,  封装成
extern "C"
{
return_typefunc_name_C(list)
{
return func_name(list);
}
}
这样的形式 。
然后 把这个c++文件c语言直接调用dll函数,封装成dll
C文件调用这个dll里面的函数,间接调用原始DLL
C语言下面这个DLL中的函数在win32控制台程序如何调用 谢谢主要有下面几个步骤:
1. 创建新的动态链接库项目,并在其中添加类的声明和定义文件;
尤其需要注意的是在类成员函数的声明中需要使用declspec(dllexport)修饰符,该修饰符能够使此DLL中的方法被导出以供其他应用程序使用 。
2. 创建引用动态链接库的应用程序;
若要使用在动态链接库中创建的成员函数,则必须引用该动态链接库 。选中调用DLL的项目,从“项目”菜单中选择“引用”,找到动态链接库对应的工程目录 。
若要引用动态链接库的头文件 , 必须修改包含目录路径 。在“附加包含目录中”找到DLL头文件所在的路径 。
可执行文件仅在运行时加载动态链接库 。必须告诉系统在哪里查找DLL , 通过PATH变量指出.dll文件所在的路径 。
3. 在调用DLL的应用程序中像使用系统提供的其它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 ?首先如果有.lib文件c语言直接调用dll函数的话c语言直接调用dll函数 , 直接在最开始加一句 #pragma comment(lib,"1.lib")然后声明一下Msgbox函数比如你c语言直接调用dll函数的Msgbox函数是int Msgbox(char * str1,char *str2);那么你应该 _declspec(dllimport) int Msgbox(char *str1,char *str2);然后你在函数中就可以直接用Msgbox函数c语言直接调用dll函数了 第二种是动态加载dll 直接在要用的地方HINSTANCE hinst=LoadLibrary("1.dll");typedef int (*p)(char*,char*);//这个是定义一个函数指针然后用p pfun=(p)GetProcAddress(hinst,"Msgbox");然后就可以调用了
c语言怎么调用dll文件(1)编写程序时,你要包含(#include "什么.h")dll文件作者提供 的 头文件(.h文件)。
程序里,便和普通函数调用一样,去调用它的函数 。
(2)程序编译时,你要链接 dll文件作者提供 的 (.lib文件) 库文件 。
当然,你可以在源程序里把.lib 名字 写上 , 编译时自动去链接 , 例子:
#pragma comment (lib, "什么.lib")
(3)执行时,要有 .dll 文件.放在当前文件夹或系统文件夹里 。
【c语言直接调用dll函数 c++调用c的dll】