您的位置:首页 > 产品设计 > UI/UE

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

2012-07-18 21:05 309 查看
问题:在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表示,这个函数被导出的顺序

你可以用以上两种方式的任意一种导出函数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: