Delphi DLL 字符串传递例子

library EN;
uses
  SysUtils,
  Classes,
  UnitFormEN in ‘UnitFormEN.pas‘ {FormEN};
{$R *.res}
function GetJobType(p: PChar): Boolean; stdcall;
var
  str: string;
begin
  str := ‘我们是中国人,我们爱自己的祖国.‘;
  StrCopy(p, PChar(str));
  Result := Length(p) > Length(str);
end;

function GetRates(p: PChar): Boolean; stdcall;
var
  str: string;
begin
  str := ‘我爱北京天安门.‘;
  StrCopy(p, PChar(str));
  Result := Length(p) > Length(str);
end;

exports
  GetJobType,
  GetRates,
  ShowFormEN;

begin
end.
时间: 2024-10-19 09:05:02

Delphi DLL 字符串传递例子的相关文章

Delphi Dll 动态调用例子(3)-仔细看一下

http://blog.163.com/bxf_0011/blog/static/35420330200952075114318/ Delphi 动态链接库的动态和静态调用 为了让人能快速的理解 静态调用.动态调用,现在做一个函数封装在一个DLL中,然后在APPLICATION form里面调用这个函数,这个函数处理两个数的和.用代码和图片说话:代码如下 library Project1; { Important note about DLL memory management: ShareMe

Delphi Dll 动态调用例子(2)

http://zhidao.baidu.com/question/157196792.html delphi动态调用DLL 写了个1.dll内容如下 library Project2; uses SysUtils, Classes; {$R *.res} function abc(x,y:Integer):Integer;stdcall; begin Result:=x+y; end; exports abc; end. 如何动态调用它呢. 比如想实现Edit3.Text:=IntToStr(a

Delphi Dll 动态调用例子(1)

http://blog.sina.com.cn/s/blog_62c46c3701010q7h.html 一.编写dll library TestDllByD2007; uses  SysUtils,  Classes;  function test(const astr:PChar):Boolean;stdcall;  begin    Result:=True;  end;{$R *.res}  exports test;beginend. 注意:1.不能使用string类型,否则涉及到资源

跨越DLL边界传递CRT对象潜在的错误

翻译:magictong(童磊)2013年5月 版权:microsoft 原文地址:http://msdn.microsoft.com/en-us/library/ms235460(v=vs.80).aspx 简介 当你把C运行时(CRT)对象(譬如文件句柄.语言环境和环境变量等等)传入传出DLL时(通过调用DLL里面暴露的一些函数),如果这个DLL加载了一份(与可执行文件)不同的CRT库,可能发现意向不到的事情. 有一个大家可能遇到过,相似的问题是,如果可执行程序在外面分配一块内存(显示的通过

JNI 中文字符串传递(转)

源:JNI 中文字符串传递 因为项目编码中通过JNI传递中文字符时出现乱码问题,特搜集了相关资料,整理如下: java内部是使用16bit的unicode编码(UTF-16)来表示字符串的,无论中文英文都是2字节:jni内部是使用UTF-8编码来表示字符串的,UTF-8是变长编码的unicode,一般ascii字符是1字节,中文是3字节:c/c++使用的是原始数据,ascii就是一个字节了,中文一般是GB2312编码,用两个字节来表示一个汉字. 1.java --> c/c++这种情况中,jav

Delphi常用字符串函数

Delphi常用字符串函数 一.字符转换函数1.ord(input[i])返回字符表达式 input 左端起第 I 字符的ASCII 码值.2.CHAR()将ASCII 码转换为字符.如果没有输入0 ~ 255 之间的ASCII 码值,CHAR() 返回NULL .3.LOWER()和UPPER()LOWER()将字符串全部转为小写:UPPER()将字符串全部转为大写.4.STR()把数值型数据转换为字符型数据.STR (<float_expression>[,length[, <dec

在.net中调用Delphi dll的Pchar转换

Pchar是非托管代码,要在.net中调用Delphi dll中的功能,请使用MarshalAs属性告知.net调用PInvoke去转换.net中标准的string类型.如果Delphi dll是Delphi2007以前的版本编译的,则Pchar是Ansi类型:如果Delphi dll是Delphi2009以后的版本编译的,则Pchar是Unicode类型.请看以下实例. Ansi类型: [DllImport("my.dll")] [return: MarshalAs(Unmanage

php这是一个随机打印输出字符串的例子

<?php header("Content-type:text/html;charset='utf8'"); error_reporting(E_ALL); define("CAPTCHA_LEN", 16); // 随机数长度 $captchaSource = "0123456789abcdefghijklmnopqrstuvwxyz这是一个随机打印输出字符串的例子"; // 随机数字符源 $captchaResult = "&

delphi DataSnap Stream 传递大数据

delphi DataSnap Stream 传递大数据 DataSnap可以直接传递和返回TStream类型的参数,这点是很方便的.但是很多人发现好像大小稍微大点就工作不正常了. DataSnap默认的缓存大小是32k 所以如果流的大小超过这个大小就会被自动分成多个包,这就是传递大量数据的基础,如果一次性发送就可能受到内存的限制. 当传递大量数据时获取到的大小是-1,所以如果还是按照一般的方法来读取流的数据就会有问题了. 由于流的数据是原始数据包发送,所以在不对数据包压缩加密的情况下,传递速度