PB调用VC编写的动态链接库
2006-06-01 18:05
274 查看
问题:在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表示,这个函数被导出的顺序
你可以用以上两种方式的任意一种导出函数
(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表示,这个函数被导出的顺序
你可以用以上两种方式的任意一种导出函数
相关文章推荐
- 【PB】powerbuilder调用VC编写的动态链接库
- pb调用vc写的动态链接库文件
- C++ builder调用vc编写的动态链接库的方法
- PB8调用使用C++与C#分别编写生成解压缩带有密码的zip压缩文件的动态链接库dll(部分内容转自互联网)
- Matlab产生可供VC调用的动态链接库的一种方法
- C# 调用GDAL编写的动态链接库dll,后不能将生成的图像显示到picturebox上,显示内存不足
- VC++ 6.0如何创建与调用动态链接库
- VC与Matlab混合编程之调用动态链接库dll(C++)——<二>
- 在Delphi中调用VC++创建的动态链接库的实例
- linux下动态链接问题(.so文件的编写与调用)
- VC调用Delphi制作的动态链接库如何互相传递字符串
- VC下dll文件的编写和显式链接调用
- MatLab调用VC的动态链接库
- 简单Demo:动态调用自己编写的动态链接库
- 在VC++中隐式调用动态链接库
- 利用VC调用动态链接库中的函数
- VC++ 6.0如何创建与调用动态链接库
- windows下的动态链接问题(.dll文件的编写与调用)
- VC调用MatLab生成的动态链接库
- VC++如何创建与调用动态链接库