我已经在 Windows VS2012 (.lib) 上构建了一个静态库,使用 stdcall 约定编译。当我说“已经构建”时,我的意思是不幸的是我无法使用我选择的调用约定来重建它。
是否可以从使用 cdecl 约定编译的代码中调用该库中的函数?或者至少做某种包装?
我不确定这是否可能(在浏览了 SO 之后,我实际上几乎确信这是完全不可能的)但是这里有些人含糊地提到可能有一个 kludge。任何想法 ?
我已经在 Windows VS2012 (.lib) 上构建了一个静态库,使用 stdcall 约定编译。当我说“已经构建”时,我的意思是不幸的是我无法使用我选择的调用约定来重建它。
是否可以从使用 cdecl 约定编译的代码中调用该库中的函数?或者至少做某种包装?
我不确定这是否可能(在浏览了 SO 之后,我实际上几乎确信这是完全不可能的)但是这里有些人含糊地提到可能有一个 kludge。任何想法 ?
在静态库的标头中,将导入的函数声明为extern <return_type> __stdcall
. 在 MSDN 上查看有关调用约定属性的更多信息:https ://msdn.microsoft.com/en-us/library/zxk0tw93.aspx