C++ Can';t导入C++;代码,用VS 2015在Win32中用StaticLibrary dll编写,将masm中的键盘输入作为.lib和.dll文件

C++ Can';t导入C++;代码,用VS 2015在Win32中用StaticLibrary dll编写,将masm中的键盘输入作为.lib和.dll文件,c++,visual-studio,assembly,masm,C++,Visual Studio,Assembly,Masm,我在VS 2015,Win32项目中编写了以下代码 MyLib.h #pragma once #include <conio.h> extern "C" { __declspec(dllexport) extern int __stdcall get_key(int a); } 这个,在构建时生成MyLib.dll和MyLib.lib 但当我尝试在masm中导入时: includelib MyLib.lib get_key PROTO C,: DWORD .d

我在VS 2015,Win32项目中编写了以下代码

MyLib.h

    #pragma once
#include <conio.h>


extern "C"
{
     __declspec(dllexport) extern int __stdcall get_key(int a);
}
这个,在构建时生成MyLib.dll和MyLib.lib 但当我尝试在masm中导入时:

includelib MyLib.lib
get_key PROTO C,: DWORD
.data
doamne_ajuta dd 0

我有以下错误: example.obj:错误LNK2019:函数中引用的未解析外部符号_get_键_draw@0
example.exe:致命错误LNK1120:1未解析外部

程序集代码不知道这是stdcall。因此它会查找错误的标识符,
\u get\u key
,而不是
\u get_key@0
。扩展PROTO或删除stdcall。您需要在asm
extern\uu imp\uu get中声明_key@4:proc
用于x86,而
extern\uu imp\u get\u键:proc
用于x64
includelib MyLib.lib
get_key PROTO C,: DWORD
.data
doamne_ajuta dd 0
 push eax
    invoke get_key, doamne_ajuta