读书人

VS2010下怎么调用动态链接库

发布时间: 2013-07-01 12:33:04 作者: rapoo

VS2010下如何调用动态链接库?
我自己写的一个只打印 Hello World的函数。编成dll文件,名字叫dlltest.dll。
然后新建一个工程,将dlltest.dll拷到工程里面,然后工程中的C语言代码如下:


#include <Windows.h>
#include <stdio.h>

typedef void(*FUN)();

int main()
{
const char* dllName = "dlltest.dll";
const char* funName1 = "PrintHello";

HMODULE hDLL = LoadLibrary("dlltest.dll");

if(hDLL != NULL)
{
FUN fp1 = (FUN)GetProcAddress(hDLL,funName1);
if(fp1 != NULL)
{
fp1();
}
else
{
printf("Cannot Find Function %s", funName1);
}

FreeLibrary(hDLL);
}
else
{
printf("Can not find %s!\n", dllName);
}

return 1;
}



最后执行结果是打印:“Can not find dlltest.dll!”,也就是代码第29行的东西,说明我的dll没有加载进去,请问该怎么样加载啊?应该是建项目的时候做一些配置吗?


Visual?Studio?2010 DLL 动态链接库 VS2010 动态调用库
[解决办法]
dlltest.dll 拷到工程里面? 要拷到和你生成的 exe 同一个目录下面.
[解决办法]
将dll文件放在和exe相同的目录下或放在c:\windows\system32目录下再试试?
[解决办法]
指定绝对路径试一下
    HMODULE hDLL = LoadLibrary("filedir\\dlltest.dll");

[解决办法]
那你找一个 Depends.exe 工具, 把 dlltest.dll 拖进去, 看看依赖项里有没有红色或黄色之类的东西.
另外, 你的 exe 和 dll 没有出现一个 32位, 一个 64 位的情况吧?
[解决办法]
GetLastError()是什么?

读书人网 >C++

热点推荐