社区
C++ Builder
帖子详情
怎样在 DLL 中返回字符串等等非int的值?好像不可能?
happyer
2001-10-15 12:46:53
我使用了 _stdcall ,保证兼容性。
但是,我想让应用程序加载DLL,并调用函数返回一个字符串,怎么做?
返回 int 没有问题,但是String / AnsiString 就不行了?
高手帮忙啊!谢谢!
...全文
167
9
打赏
收藏
怎样在 DLL 中返回字符串等等非int的值?好像不可能?
我使用了 _stdcall ,保证兼容性。 但是,我想让应用程序加载DLL,并调用函数返回一个字符串,怎么做? 返回 int 没有问题,但是String / AnsiString 就不行了? 高手帮忙啊!谢谢!
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用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空间段,操作系统对他保护,好像不能这样访问吧?
python调用
dll
文件时传入参数是
int
*,
返回
值
是char*,对传入的char*所指的内容的修改
首先 若调用的
dll
中
的函数的参数是
int
型的指针: 在
C#调用C++
DLL
的小总结8---C++
Dll
中
函数
返回
字符串
指针
C#调用C++
DLL
的小总结8---C++
Dll
中
函数
返回
字符串
指针 在这个系列的“C#调用C++
DLL
的小总结6---C++
Dll
中
指针的释放问题 ”
中
曾经详细说过类似的问题,但今天换了个马甲,就又耗费了半天的时间才解决掉,记下来以为咨询。 情况如下: 在一个C++
DLL
中
写了一个函数用来
返回
数据库的连接
字符串
,
返回
值
是一个char*的
c# 调用 C++
dll
传入传出
字符串
C#调用
非
托管C++
dll
传入Stringbuilder、ref string 、 ref char 等都报错,如mscorlib.
dll
异常、其他信息: 尝试读取或写入受保护的内存。这通常指示其他内存已损坏 等等 后来看到文章提到byte,想起来之前调用没有问题是用的byte,C#
中
的char是两个字节,用byte能证明标识内存地址 http://msdn.microsoft
C#通过
dll
调用带参数的C++代码:传递
字符串
、
返回
int
和
int
数组
c#调用c++代码
C# 调用 Qt
Dll
返回
int
和const char *
写了两个函数接口, 一个
返回
int
, 另一个
返回
const char *
字符串
dll
方法
返回
const char * 时, c# 程序使用
Int
Ptr类型声明, 不然会乱码 Qt
dll
接口函数定义: main.cpp extern "C" __declspec(
dll
export)
int
add(
int
numberA,
int
numberB) { return num...
C++ Builder
13,871
社区成员
102,696
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章