由VC编写一函数返回字符串,由PB调用,这个VC的函数该怎么编啊,救救我吧

hardboy_du 2003-11-18 04:33:56
帮帮我
...全文
85 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lmby 2003-11-27
  • 打赏
  • 举报
回复
你vc的函数显然没问题。调用前ls_ReaderList = space(255), try。
medlar 2003-11-27
  • 打赏
  • 举报
回复
查一下以前的帖子,我用过的通过了,如果没有找到发个MAIL给我。
ascap@sohu.com
incats 2003-11-19
  • 打赏
  • 举报
回复
PB里先要
ls_ReaderList = space(255)
分配一下空间.
hzhxxx 2003-11-18
  • 打赏
  • 举报
回复
extern "C"
BOOL __stacall GetReaderList(LPTSTR lpStr)
hardboy_du 2003-11-18
  • 打赏
  • 举报
回复
用lstrcpy(lpStr, "hello world");也不行
hardboy_du 2003-11-18
  • 打赏
  • 举报
回复
在VC下写如下的函数:
extern "C"
BOOL WINAPI GetReaderList(LPTSTR lpStr)
{
wsprintf(lpStr, "%s", "hello world");
return TRUE;
}
在PB中声明如下:
FUNCTION long GetReaderList(ref string str) LIBRARY "MyDll.dll"
在PB中调用如下:
string ls_ReaderList

GetReaderList(ls_ReaderList)
MessageBox("", ls_ReaderList)

但运行的时候会出现

pb60.exe - 应用程序错误: "0x10bb16d0" 指令引用的 "0x00646c76" 内存。该内存不能为 "written"。

要终止程序,请单击“确定”。
要调试程序,请单击“取消”。

没办法了

帮帮我啊


mittee 2003-11-18
  • 打赏
  • 举报
回复
例如像下面声明:

Function long getcpuid(ref string ls_2,.....) Library "key.dll"
liujiaqiang 2003-11-18
  • 打赏
  • 举报
回复
你可以写一个DLL 文件出来。然后在PB的 扩展全局或则局部函数申明中申明就可以了,例如: key.dll 是一个加密的注册 DLL 文件,这个文件中有一个函数为:getcpuid 。

Function long getcpuid() Library "key.dll"

在PB中就可以使用这个函数了:getcpuid()
hzhxxx 2003-11-18
  • 打赏
  • 举报
回复
VC没有使用过, BCB 我知道

680

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder API 调用
社区管理员
  • API 调用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧