一个关于DLL的字符串调用问题(50分)

  • 主题发起人 主题发起人 SuperCat98
  • 开始时间 开始时间
S

SuperCat98

Unregistered / Unconfirmed
GUEST, unregistred user!
编写DLL和调用DLL的时候,字符串的输入和输出该如何处理呢?
我是想在程序中,调用DLL中的函数时输入字符串实参,经过DLL中的函数处理后返回
一个字符串,然后在EDIT控件上显示出来。
我知道我的问题很菜,但各位请不要生气,还请多多指教,谢谢了。
 
如果用string类型, 你要在程序中加入ShareMem单元, 放在第一个. 同时要把borlndMM.dll
放在工作目录. 如果用PChar, ShortString, 直接用就可以了.
dll
function StrProcess(const aStr:ShortString):ShortString;stdcall;

main
function strProcess(const aStr:ShortString):ShortString;stdcall;external 'dll';
edit1.text := StrProcess(edit1.text);



 
尽量不要用String类型
 
但是在EDIT控件中用的是string呀。。。。。
作为参数用的字符串是从EDIT控件中输入的
 
考虑兼容性,把string转换成PChar.
 
用pchar型不但可使编译后的DLL文件较小,而且可以方便其他语言如(VC,VB)等调用。
 
为了不在传递过程中出错,尽量不要用String,最好用Pchar。
 
谢谢各位,我知道了
 
多人接受答案了。
 
后退
顶部