如何把C#中声明的DLL部分的语法改为PB?

路人甲cw 2011-06-07 08:52:58
C#中如下:
[DllImport("libxl.dll", CallingConvention=CallingConvention.Cdecl, CharSet=CharSet.Unicode)]
private static extern IntPtr xlBookAddSheet(IntPtr handle, string name, IntPtr initSheet);
我在PB中这样引用的:
public function ulong addsheet(ulong hwb,string sheetname,ulong sheetid) library "libxl.dll" alias for "xlBookAddSheetA"
但运行时报异常:
Specified argument type differs from required argument type at runtime in DLL function name
"指定的参数类型与动态链接库中的函数所需要的参数类型不一致"

...全文
70 点赞 收藏 2
写回复
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
pcwe2002 2011-06-08
这个dll pb没法调用,你看申明CallingConvention=CallingConvention.Cdecl, CharSet=CharSet.Unicode)
这个调用规则是cdecl,只有stdcall的才行
回复
yyoinge 2011-06-07
intptr 换成 ref string
或者
global type intptr from structure
ulong attributes
end type
回复
发动态
发帖子
API 调用
创建于2007-09-28

665

社区成员

PowerBuilder API 调用
申请成为版主
社区公告
暂无公告