MSFT C 未解析的外部绑定以在 Win32 控制台应用中使用 DLL 函数

msft c unresolved external tying to use dll function in win32 console app

提问人:RichT 提问时间:10/9/2018 更新时间:10/9/2018 访问量:29

问:

我有一个非常简单的c ++ dll,它加了两个数字。源文件如下所示:

extern "C" {
__declspec(dllexport) double __stdcall myadder(double a,double a)
{
    return (a+b);
}
}

使用 def 文件:

LIBRARY myadder
EXPORTS
    _myadder@16

exe的代码是:

#include "stdio.h"

__ declspec(dllimport) double myadder(double a, double b);


int main()
{
double r;

r=myadder(5,6);

printf("myadder = %f \n",r);


return 0;
}

我告诉它使用带有路径的 myadder.lib。但我收到错误:

1>helloworld.obj : error LNK2019: unresolved external symbol __imp__myadder referenced in function _main

1>C:\lotus\optfunc\helloworld\Debug\helloworld.exe:致命错误LNK1120:1 个未解决的外部问题

如果我摆脱了__declspec(dllimport),我会得到:

1>helloworld.obj : error LNK2019: unresolved external symbol _myadder referenced in function _main 

我做错了什么?

visual-c++ 未解析的外部

评论

0赞 Igor Tandetnik 10/9/2018
您似乎没有将 EXE 与 DLL 的导入库链接。
0赞 RichT 10/10/2018
@igor tandetnik 我告诉它使用 myadder.lib
0赞 Igor Tandetnik 10/10/2018
调用约定不匹配。您可以在 DLL 中使用它,但在 EXE 中设置默认值(通常为)。__stdcall__cdecl
0赞 RichT 10/10/2018
@IgorTandetnik宾果游戏!非常感谢!如何将其标记为答案?

答: 暂无答案