在StdCall约定中调用MASM函数

时间:2017-01-02 14:07:24

标签: c assembly masm stdcall cdecl

我在Visual Studio 2015中用C编写了一个程序,其中有一个masm模块。我想定义一些要调用的函数作为stdcall而不是默认的cdecl。那有办法吗?我的目标是跳过调用函数中的堆栈清理。

我在myModule.h

中有一个功能
SIZE_T MyFunc(PVOID IN param1, PVOID IN param2);

但是,以下列方式将__stdcall添加到函数签名中:

SIZE_T __stdcall MyFunc(PVOID IN param1, PVOID IN param2);

产生链接错误:

  

LNK2019未解析的外部符号_MyFunc @ 8

函数的定义在myModule.asm中,删除__stdcall子句后,代码会正确编译和链接。

有谁知道如何以正确的方式做到这一点?

我还尝试通过更改以下内容来更改整个.asm文件以使用stdcall约定:

  

properties->配置属性 - > microsoft宏汇编程序 - > advanced->调用约定

但是当调用者清理堆栈时,函数仍然被称为cdecl。

谢谢!

0 个答案:

没有答案