社区
语言基础/算法/系统设计
帖子详情
如何在DLL中返回字符串参数!
dyzhao889
2005-03-01 02:09:40
我在DLL中写了一个Procedure但是不知道如何返回一个字符串参数??
请高手们帮帮忙!
小弟先谢谢了!!!
...全文
121
7
打赏
收藏
如何在DLL中返回字符串参数!
我在DLL中写了一个Procedure但是不知道如何返回一个字符串参数?? 请高手们帮帮忙! 小弟先谢谢了!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
楚人无衣
2005-03-01
打赏
举报
回复
可以啊:
dll:
...
procedure x(var s1,s2: PAnsiChar); stdcall
begin
s1 := PAnsiChar('Test1');
s2 := PAnsiChar('Test2');
end;
exports
x;
...
exe:
...
procedure x(var s1, s2: PAnsiChar); stdcall; external 's.dll';
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
s1, s2: PAnsiChar;
begin
x(s1, s2);
ShowMessage(StrPas(s1) + ' ' + StrPas(s2));
end;
...
dyzhao889
2005-03-01
打赏
举报
回复
不是的:
这样你会明白点:
procedure x(var s1,s2:pchar)
begin
s1:='Test1';
s2:='Test2';
end;
想返回两个值!
lylen
2005-03-01
打赏
举报
回复
我想搂主说的返回参数应该是返回值吧!你用过程procedure x(var str:pchar)是没有返回值得!你如果要用到返回值的话就应该定义成:function x(参数列表):PAnsiChar;stdcall 要用的话你就看赋值给谁了!怎么定义你应该知道得吧!
dyzhao889
2005-03-01
打赏
举报
回复
我想用
procedure x(var str:pchar);
可以返回参数吗??
楚人无衣
2005-03-01
打赏
举报
回复
用PAnsiChar代替string,如下所示:
dll中:function GetEnStr(const ACnStr: string): PAnsiChar; stdcall
exe中:leEnName.Text := StrPas(GetEnStr(leCnName.Text));
dyzhao889
2005-03-01
打赏
举报
回复
这样不行!
这样:
procedure x(var str:pchar)
begin
str:='Test';
end;
也不行!
SKYGUARDER
2005-03-01
打赏
举报
回复
procedure x(var str:string)
begin
...
end;
试试看。
Windows进程常用
DLL
模块注入技术
进程入口点注入,在程序初始化的时机前将
dll
模块文件注入至目标主线程。 进程调试级注入,涉及调试器相关功能调用知识点
dll
模块重定位内存注入,模拟操作系统加载PE文件方式,直接将
dll
文件内存数据写入目标进程并...
c++
dll
接口
返回
字符串
假如说,我们封装的
dll
有
返回
字符串
的需求,比如有这么个函数 string oneclass::getString() { string res = string(); ...do something,,, return res; } 的话,如果我们直接使用std::string 作为接口
返回
值的话,是会有一些问题的 具体的问题 可以百度 "尽量不要在
Dll
的接口
中
使用str
C#调用C++写的
dll
,
返回
字符串
C#调用C++写的
dll
,
返回
字符串
记录工作时自己遇到的一些问题 有两种方案: 一是C#传递一个ref
参数
给c++,在c++内把
字符串
拷贝到传进来的ref
参数
中
。但这个方案有一个缺点:必须提前设置好
字符串
的长度。在
字符串
长度无法预估的情况下不好用。 二是把字符传作为
返回
值
返回
,本文采用第二种方案 提示:以下是本篇文章正文内容,下面案例可供参考 一、C++部分 代码如下(示例): wchar_t* __cdecl returnStr ( int argc,
C#调用C++编写的
DLL
整型和
字符串
传参
C#调用C++编写的
DLL
整型和
字符串
传参 直接
返回
值 目录C#调用C++编写的
DLL
整型和
字符串
传参直接
返回
值
DLL
返回
字符串
DLL
返回
整型
参数
传参
DLL
返回
字符串
C++ Code: extern "C" __declspec(
dll
export) char* GetStr() { string s = "This is a string"; return _strdup(s.c_str()); //一定要用_strdup()复制一段内存,不然等调用结束
字符串
内存会
Dll
中
返回
字符串
的问题
dll
中
返回
字符串
的问题2008-08-06 12:37
写了一个
DLL
,封装了一个类,该类有一个函数名为 WriteRecord(P: Pointer),其
中
参数
P 是一个记录指针,子类在 override 该函数时学根据将 P 指针转为子类所支持的记录类型,如:
var
pt: PBookInfo;
begin
pt := PBookInfo(P);
...
end;
该
DLL
语言基础/算法/系统设计
16,748
社区成员
33,246
社区内容
发帖
与我相关
我的任务
语言基础/算法/系统设计
Delphi 语言基础/算法/系统设计
复制链接
扫一扫
分享
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章