社区
C++ Builder
帖子详情
AnsiString&是什么类型,怎么用?
qingniao
2000-04-15 01:16:00
初学问题
...全文
251
4
打赏
收藏
AnsiString&是什么类型,怎么用?
初学问题
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
halfdream
2000-04-17
打赏
举报
回复
AnsiString& 是用于传递参数时用的,它表示对一个AnsiString变量的引用。
象AnsiString str1;这样定义后,str1实际上是一个类实例,而不是
象char str1[XX]; 后,str1是个指针。
用AnsiString&作为参数值可以用它取得函数的返回值。
风子
2000-04-17
打赏
举报
回复
尽量用AnsiString,如果没有必要最好用AnsiString代char
莫等闲
2000-04-16
打赏
举报
回复
显然,是string类型,帮助里面写得很清楚呢!
查查看,你会有意想不到的结果!
Lin
2000-04-16
打赏
举报
回复
在线帮助:用AnsiString作关键字搜寻,然后...,你会明白的。
Ansi
string
使用大全.doc
这是讲解
Ansi
Stirng
类型
字符串的用法的文档,里面提及了该类的诸多常用方法
delphi7高精度计算单元 high.dcu
基于
ansi
string
类型
开发了delphi7的高精度计算单元high.dcu,其中包含高精度加法、减法、乘法、除法、最小公倍数、最大公约数 等计算函数或过程。其接口文件如下: unit high; interface const intmax=32767; function d2c(d:byte):char; function c2d(c:char):byte; function len(s:
ansi
string
):integer; function plus(x,y:
ansi
string
):
ansi
string
; function mult(x,y:
ansi
string
):
ansi
string
; function minus(x,y:
ansi
string
):
ansi
string
; function divide(var x:
ansi
string
;y:
ansi
string
):
ansi
string
; function gcd(x,y:
ansi
string
):
ansi
string
; function lcm(x,y:
ansi
string
):
ansi
string
; function hex2dec(s:
ansi
string
):
ansi
string
; procedure trans(a:
ansi
string
;b:integer); implementation ................ end.
C++ Builder中的
类型
转换
C++ Builder中的
类型
转换,非常实用。很全。各种
类型
都有实例。
Delphi2009、Delphi2010的GBK繁体转简体函数
Delphi2007之前的API繁简转函数在Delphi2009版本出现后不能用,原因在于之前版本的
String
默认为
Ansi
String
,而Delphi2007之后的
String
默认为Wide
String
,同样,PChar指针也就为P
Ansi
String
,所以调用Windows API函数如:MultiByteToWideChar 会出现编译出错,原因是
类型
不对,也不能强制转换,以下是本人修改的网上流行的繁简转函数,测试通过,并完全正常使用!
Delphi中制作DLL中回调函数的应用
Delphi中制作DLL •一 Dll的制作一般分为以下几步: 1 在一个DLL工程里写一个过程或函数 2 写一个Exports关键字,在其下写过程的名称。不用写参数和调用后缀。 二参数传递 1 参数
类型
最好与window C++的参数
类型
一致。不要用DELPHI的数据
类型
。 2 最好有返回值[即使是一个过程],来报出调用成功或失败,或状态。成功或失败的返回值最好为1[成功]或0[失败].一句话,与windows c++兼容。 3 用stdcall声明后缀。 4 最好大小写敏感。 5 无须用far调用后缀,那只是为了与windows 16位程序兼容。 三 DLL的初始化和退出清理[如果需要初始化和退出清理] 1 DLLProc[SysUtils单元的一个Pointer]是DLL的入口。在此你可用你的函数替换了它的入口。但你的函数必须符合以下要求[其实就是一个回调函数]。如下: procedure DllEnterPoint(dwReason: DWORD);far;stdcall; dwReason参数有四种
类型
: DLL_PROCESS_ATTACH:进程进入时 DLL_PROCESS_DETACH进程退出时 DLL_THREAD_ATTACH 线程进入时 DLL_THREAD_DETACH 线程退出时 在初始化部分写: DLLProc := @DLLEnterPoint; DllEnterPoint(DLL_PROCESS_ATTACH); 2 如Form上有TdcomConnection组件,就Uses Activex,在初始化时写一句CoInitialize (nil); 3 在退出时一定保证DcomConnection.Connected := False,并且数据集已关闭。否则报地址错。 四全局变量的使用 在widnows 32位程序中,两个应用程序的地址空间是相互没有联系的。虽然DLL在内存中是一份, 但变量是在各进程的地址空间中,因此你不能借助dll的全局变量来达到两个应用程序间的数据 传递,除非你用内存映像文件。 五、其他:调用方式按照标准的Windows调用方式. 六、关于参数传递 •Delphi程序之间调用DLL,如果要用
String
类型
的话,要在引用的单元加上ShareMem 单元。 •如果Delphi写的DLL供其他开发工具使用的话,不要使用
String
类型
,用P
Ansi
Char
类型
。 尽量使用标准DLL接口。指的是传递的参数
类型
及函数返回
类型
不能是Delphi特有的, 比如
string
(
Ansi
String
),以及动态数组和含有这些
类型
成员的复合
类型
(如记录),也不 能是包含有这些
类型
成员数据成员的对象
类型
,以避免可能的错误。如果使用了
string
类型
或 动态数组
类型
,且调用方不是Delphi程序,则基本上会报错。如果调用方是Delphi但调用方或 被调用方没有在工程文件的第一包含单元不是ShareMem,也可能会出错。 七、关于回调Funciton 你可以把Callback函数看作是一种特殊的消息响应函数,一般来说我们不会自己调用这种函数, 而是有某些系统函数调用,而且不需要向后传递消息。 只要象C/C++这样支持函数指针的语言都 有回调函数的概念,它实际上是向被调用函数传一个你的函数地址,然后被调用函数向通过你传 入的函数地址来调用你的函数 。 以上是结构化回调,到高级语言Object Pascal、C++中回调函数并没有退出,反而得到延伸与 扩展,在面向对像中的回调,其实是指面向对像中类对像的事件,事件就是原始的回调函数。面 向对像, 将回调函数定义成事件过程,在程序引用对像时,若指定了对像的过程事件后,那么在 要进行事件触发的地方检查事件过程是否分配,如果分中的就执行事,也就是执行了回调函数。
C++ Builder
13,824
社区成员
102,679
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章