如何在c#里调用c++库的函数?参数为char*,c#应该传什么参数进去呢?

boarduck 2004-08-16 11:23:31
[DllImport("Test", SetLastError=true)]
public static extern int GetName(char* name, char* addr);

用string肯定不行,而且unsafe中无法取得string这种托管代码的地址和大小..

用char*也不能成功..

急,在线等!!
分不够再加!!
...全文
920 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
暗石绿 2004-08-17
  • 打赏
  • 举报
回复
Wtypes.h 中的非托管类型 非托管C 语言类型 托管类名 说明
HANDLE void* System.IntPtr 32 位
BYTE unsigned char System.Byte 8 位
SHORT short System.Int16 16 位
WORD unsigned short System.UInt16 16 位
INT int System.Int32 32 位
UINT unsigned int System.UInt32 32 位
LONG long System.Int32 32 位
BOOL long System.Int32 32 位
DWORD unsigned long System.UInt32 32 位
ULONG unsigned long System.UInt32 32 位
CHAR char System.Char 用 ANSI 修饰。
LPSTR char* System.String 或 System.StringBuilder 用 ANSI 修饰。
LPCSTR Const char* System.String 或 System.StringBuilder 用 ANSI 修饰。
LPWSTR wchar_t* System.String 或 System.StringBuilder 用 Unicode 修饰。
LPCWSTR Const wchar_t* System.String 或 System.StringBuilder 用 Unicode 修饰。
FLOAT Float System.Single 32 位
DOUBLE Double System.Double 64 位
canoe_eyes 2004-08-17
  • 打赏
  • 举报
回复
http://www.chinabyte.net/20030102/1646672.shtml
看后便知
hivak47 2004-08-17
  • 打赏
  • 举报
回复
StringBuilder可以吗?
020job 2004-08-17
  • 打赏
  • 举报
回复
帮你顶
13880079673 2004-08-16
  • 打赏
  • 举报
回复
关于其他指针类型的C#对应你可以在csdn中搜索UnmanagedType看到
13880079673 2004-08-16
  • 打赏
  • 举报
回复
你可以在网上搜索一下“C#和内存指针类型”
13880079673 2004-08-16
  • 打赏
  • 举报
回复
char *对应的C#类型
[MarshalAs(UnmanagedType.LPTStr)]
StringBuilder sMsgID;
boarduck 2004-08-16
  • 打赏
  • 举报
回复
直接用ref char[] 或ref byte 或 ref StringBuilder传入?

哪dllimport的函数的参数还是char*这样能行吗?
Knight94 2004-08-16
  • 打赏
  • 举报
回复
StringBuilder
速马 2004-08-16
  • 打赏
  • 举报
回复
试试StringBuilder
wnlovezxm 2004-08-16
  • 打赏
  • 举报
回复
byte 类型!
yezie 2004-08-16
  • 打赏
  • 举报
回复
char[]呢?
tongeng 2004-08-16
  • 打赏
  • 举报
回复
也想知道
帮顶~
boarduck 2004-08-16
  • 打赏
  • 举报
回复
顶啊

110,533

社区成员

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

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

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