注册 登录
编程论坛 C语言论坛

vs2022的显式链接问题,大佬们帮忙看看

鱼头豆腐汤 发布于 2023-04-27 12:56, 155 次点击
把dll文件已经置于项目文件的目录下面。
在项目的链接器的附加依赖项中也添加了dll文件。
项目编译时出现链接器LNK1107错误,找了很多地方都没有找到解决办法。
第一个帖子把dll的声明写错了,重新发一个帖子,顺便请问大家怎么删发错的帖子啊。

dll的声明

extern "C" _declspec(dllexport) void Wuhu();

dll的内容
程序代码:

void Wuhu()
{
    printf("niubi");
}

只有本站会员才能查看附件,请 登录


项目文件中显式调用dll
程序代码:

typedef void(*pWuhu)();
int main()
{
    pWuhu myWuhu;
    HINSTANCE hMODULE = LoadLibrary(L"Dll2.dll");
    myWuhu = (pWuhu)GetProcAddress(hMODULE, "Wuhu");
    myWuhu();
    return 0;
}

错误信息
只有本站会员才能查看附件,请 登录
4 回复
#2
rjsp2023-04-27 14:15
把dll文件已经置于项目文件的目录下面
哪个下面?你应该将dll放在exe的GetCurrentDirectory下面

项目编译时出现链接器LNK1107错误
你用的是 LoadLibrary 呀,顶多会在运行时出错,而不是编译链接期出错。
难道又隐式link了这个dll,并且把dll链接进去了?(应该链接lib文件)
#3
吹水佬2023-04-27 14:22
_declspec(dllexport)
改试试
__declspec(dllexport)
#4
鱼头豆腐汤2023-04-27 16:43
回复 2楼 rjsp
感谢大佬,解决了。我删除了链接器的附加依赖项中的dll,只保留项目目录下的dll文件,运行成功。就是附加依赖项中添加dll,导致隐式link了这个dll文件,显式链接时出现链接器错误。
#5
鱼头豆腐汤2023-04-27 16:46
回复 3楼 吹水佬
感谢大佬,解决了。我删除了链接器的附加依赖项中的dll,只保留项目目录下的dll文件,运行成功。就是附加依赖项中添加dll,导致隐式link了这个dll文件,显式链接时出现链接器错误。
1