请问VC中的LPCTSTR,char*,LPTSTR这三种类型分别对应C#的什么类型呢?

深宇 2007-07-16 08:45:59
如题!
...全文
711 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
yinrongg 2008-09-23
  • 打赏
  • 举报
回复
MARK
深宇 2007-07-17
  • 打赏
  • 举报
回复
最近写的程序需要用到C#,VC,Delphi相互协作,被这些数据类型之间的转换搞得头大!希望有经验的大侠能提供一个对照表,免得大家多走弯路了
深宇 2007-07-17
  • 打赏
  • 举报
回复
最近写的程序需要用到C#,VC,Delphi相互协作,被这些数据类型直接的转换搞得头大!希望有经验的大侠能提供一个对照表,免得大家多走弯路了
Pittypat 2007-07-17
  • 打赏
  • 举报
回复
在某些情况下也可以是StringBuilder
Pittypat 2007-07-17
  • 打赏
  • 举报
回复
string 或者 char*
兔子-顾问 2007-07-17
  • 打赏
  • 举报
回复
ls
其实.net里就那几种。访问非托管的逼近不会太多。用到的时候那几个来回倒着试试,自然就有结果了。你说呢?
vc中定义:
LPCTSTR是 const char*
char* 是 char*
LPTSTR 是 TCHAR*
根据宏区分UNICODE还是ASCII,第三个可能是char*也可能是w_char*
所有都通用string应该可以。但实际中应该还有不同。比如如果对方是传出来的。你用string都没问题,如果是传入的,那用string就不行,需要分配好长度足够的char并且使用
unsafe
{
fixed(char* p = charArray)
{
//
}
}
单这样说,都对应string都没问题。如果只是那个非托管代码传出字串。
xingtaisen 2007-07-17
  • 打赏
  • 举报
回复
为什么大家总是众说纷纭呢?谁敢拍着胸膛说他说的是正确的.
wzd24 2007-07-17
  • 打赏
  • 举报
回复
char* 要看是否为\0结尾,如果是就用string,否则就只能用char[];
其它两个都用string!
xingtaisen 2007-07-17
  • 打赏
  • 举报
回复
想和楼主一起研究一下.

**********************************************
Mr xing
email&msn:xingtaisen@126.com
QQ:654 1798 16
**********************************************
xingtaisen 2007-07-17
  • 打赏
  • 举报
回复
是呀,谁做过在C#中调用过VC的dll程序的,请把你能确定的(你自己已经证明是正确的了的)数据类型的转换写出来,
就算是帮助大家了.免得大家多走弯路了


深宇 2007-07-16
  • 打赏
  • 举报
回复
C#中好像初始化不了const char[],比如我想初始化为"数据库",好像不行的
vainnetwork 2007-07-16
  • 打赏
  • 举报
回复
LPCTSTR,char*,LPTSTR
LPCTSTR => const char[]
char* => char[]
LPTSTR =>如果没有定义UNICODE宏,就是char*,就是char[],如果定义了UNICODE宏,就对应到c#的string吧。具体情况具体分析。


就这个,楼上的
兔子-顾问 2007-07-16
  • 打赏
  • 举报
回复
LPCTSTR,char*,LPTSTR
LPCTSTR => const char[]
char* => char[]
LPTSTR =>如果没有定义UNICODE宏,就是char*,就是char[],如果定义了UNICODE宏,就对应到c#的string吧。具体情况具体分析。

110,553

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧