在VS 2013中使用汇编程序制作dll

时间:2014-03-19 18:49:51

标签: c++ visual-studio assembly dll

当我尝试制作dll文件时出现错误:

1>asselib.def : error LNK2001: unresolved external symbol MyProc
1>C:\Users\el bandito\Documents\Visual Studio 2013\Projects\testy\asselib\Debug\asselib.lib : fatal error LNK1120: 1 unresolved externals

项目如何:

- 我选择了新项目 - > win32项目 - > DLL,导出符号

-sourcefile - >添加新项目 - > asselib.asm

.486
.model flat, stdcall
.code

MyProc proc x: DWORD, y: DWORD
ret
MyProc endp
end

-sourcefile - >添加新项目 - > asselib.def

LIBRARY "asselib"
EXPORTS
MyProc

-project - >构建定制 - > MASM

-project - >属性 - >链接器 - >输入 - >模块定义文件,asselib.def

1 个答案:

答案 0 :(得分:0)

我记得你必须明确地将程序声明为外部。

PUBLIC MyProc
MyProc proc x: DWORD, y: DWORD
ret 8
MyProc endp

此外,stdcall约定假定被调用者清理堆栈。这意味着ret 8而不是ret