怎样在 DLL 中返回字符串等等非int的值?好像不可能?

happyer 2001-10-15 12:46:53
我使用了 _stdcall ,保证兼容性。
但是,我想让应用程序加载DLL,并调用函数返回一个字符串,怎么做?
返回 int 没有问题,但是String / AnsiString 就不行了?
高手帮忙啊!谢谢!
...全文
115 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
bobqi 2001-10-15
  • 打赏
  • 举报
回复
你可以用数组来做啊
happyer 2001-10-15
  • 打赏
  • 举报
回复
不晚不晚!
我欢迎各种方法。大家尽管放马过来。
正好还没有结贴,就先等等。
有好的解决方案的,有加分哦!嘿嘿。

TO Wingsun(孙春阳):
你是说可以直接返回非int类型数据?
给我一个例子,就用 String 吧。 
如果可以,给分!
Wingsun 2001-10-15
  • 打赏
  • 举报
回复
我觉得是绝对可以的。估计你的代码有问题。
LuoGD 2001-10-15
  • 打赏
  • 举报
回复
我晚了!唉
happyer 2001-10-15
  • 打赏
  • 举报
回复
已经搞定。用了char *
不过中间用了一大堆强制类型转换。
happyer 2001-10-15
  • 打赏
  • 举报
回复

其实我的C++水平不怎么样。
所以,看不懂你的意思。

我先解释我的意思:
我要用DLL封装一个查询数据库的功能,然后调用时,不需要给DLL参数,仅仅调用函数名就行了。然后DLL返回给主程序一个字符串结果。这是我的目的。
希望高手们能够讲清楚一点,我实在笨。
ddeng 2001-10-15
  • 打赏
  • 举报
回复
对于AnsiString可以做引用调用嘛
void __stdcall GetStr(AnsiString& Str) {
Str = "haha";
}
调用:
AnsiString S;
GetStr(S);

对于char *,就得保证空间可用了
void __stdcall GetStr(char s[256]) {
strncpy(s, "hahahahaha", 256)
}
调用前得保证s具有空间,如:
char s[256];
GetStr(s);
gloom 2001-10-15
  • 打赏
  • 举报
回复
char* 不就可以了吗?我都用过了的啊
happyer 2001-10-15
  • 打赏
  • 举报
回复
你是说用DLL返回数组首地址?
可以吗?

DLL 本身在 0~2G空间段,操作系统对他保护,好像不能这样访问吧?

13,822

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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