PB调用VC编写的动态链接库

问题:在pb调用vc编写的动态链接库的时候,报"specified argument type differs from required argument type at runtime in DLL function myFunctionVC4(invalid stack pointer on return from function call) at line 3 in clicked ev
摘要由CSDN通过智能技术生成

问题:在pb调用vc编写的动态链接库的时候,报"specified argument type differs from required argument type at runtime in DLL function myFunctionVC4(invalid stack pointer on return from function call) at line 3 in clicked event of object cb_1 of w_main"

(1) DLL中myFunctionVC4函数声明如下:
extern "C" __declspec(dllexport)  long  MyFunctionVC4(long xx){
 //AFX_MANAGE_STATE(AfxGetStaticModuleState());
 return xx;
}

(2)调用过程 long ll = MyFunction(10);

为什么我调用的时候,说提示无法访问被呼叫函数的堆栈哪?经过查阅资料,发现问题解答如下:

(1)VC中函数需要前加 __stdcall 参数声明
(2)要在.def文件中定义函数的导出顺序
     ; MyVCDLL.def : Declares the module parameters for the DLL.

     LIBRARY      "MyVCDLL"
     DESCRIPTION  'MyVCDLL Windows Dynamic Link Library'

     EXPORTS
          ; Explicit exports can go here
          ;MyVC3 = _MyVC3@4  

          ;这里的@4是指的MyVC3参数的总Byte数,注意你可以改名,例如MyVC4 = _MyVC3@4真正在外部调用时为MyVC4(int)名
          MyFunctionVC4 @1  ;这里的@1表示,这个函数被导出的顺序

你可以用以上两种方式的任意一种导出函数

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值