C如何调用C++编写的DLL 5
小弟以前搞硬件的,C++不太熟,现在正在做一个C调用C++编写的DLL的工程,不知如何下手,情况是这样的:这个DLL是以前是一个C#工程调用的,而且关于这个DLL只有一个...
小弟以前搞硬件的,C++不太熟,现在正在做一个C调用C++编写的DLL的工程,不知如何下手,情况是这样的:这个DLL是以前是一个C#工程调用的,而且关于这个DLL只有一个DLL,没有.lib和.h,现在想用C来调,做一个控制台,看了网上许多文章稀里糊涂的,具体该如何操作呢?大侠们救苦,救急啊!!
展开
3个回答
展开全部
只有dll,只能借用vc中的LoadLibrary以及GetProcAddress两个api,前提是你得知道dll中函数的形式,
LoadLibrary载入指定的动态链接库,并将它映射到当前进程使用的地址空间。一旦载入,即可访问库内保存的资源
GetProcAddress函数检索指定的动态链接库(DLL)中的输出库函数地址。
LoadLibrary载入指定的动态链接库,并将它映射到当前进程使用的地址空间。一旦载入,即可访问库内保存的资源
GetProcAddress函数检索指定的动态链接库(DLL)中的输出库函数地址。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-08-23
展开全部
#include <WINDOWS.H>
#include <WINBASE.H>
typedef void (*MYPROC)(char*);
int main()
{
HINSTANCE LibHandle;
MYPROC ProcAdd;
char dllbuf[] = "F:\\c\\Project1.dll";
char sysbuf[] = "show123"; /*过程名*/
char *cmdbuf = "xxwwwwwwwwwwwwwwwwwwwwwwxxx"; /*过程要带入的参数*/
LibHandle = LoadLibrary(dllbuf); /*载入dll*/
ProcAdd = (MYPROC)GetProcAddress(
LibHandle, sysbuf); /*获取函数sysbuf的地址*/
(ProcAdd) (cmdbuf); /*ProcAdd就相当于函数 show123*/
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询