关于Delphi编写的DLL中String[255]作为参数在C#里调用接收时的问题
Delphi编写的DLL中String[255]作为参数在C#里调用接收时应该对应何种数据类型接受啊?
我用[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 255)] public string RecType;可以正确分配到空间 函数调用也显示成功 却返回乱码或空值请问正确该怎么做?
Delphi编写的DLL中String[255]作为参数在C#里调用接收时应该对应何种数据类型接受啊?
我用[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 255)] public string RecType;可以正确分配到空间 函数调用也显示成功 却返回乱码或空值请问正确该怎么做?
解决方案 »
- Tchart组件的title怎么赋值?
- 如何在同一打印任务中打印两页不同方向的文档?
- Applicaton.MessageBox(...MB_YESNOCANCEL..) 点Yes按钮会退出,请高手进来帮帮忙
- WebBrowser1实现打印
- 请教:mediaplayer播放一个电影时的display为一个panel,怎么知道电影大小?
- 还有一个关于stringgrid的问题,解决给高分!
- 几个月没来,今天才发现又多了条三角裤,庆祝一下,同时庆祝delphi8的发布,呵
- 2003高考试题
- 如何知道treeview中所有节点总数?
- DELPHI的问题
- 一般小的软件公司要有多少资深的开发人员?
- [长沙]招聘计算机管理员一员(懂Delphi及SQL)
据说Delphi写的Dll用其他非Delphi写的程序来调用很容易出错,因为Delphi 在编译时作了某些处理
Delphi中Dll一般不用String,而用PChar。
C中PChar,好象类似是字符的数组。
另,Delphi中,也可以使用String的。最新发现!http://community.csdn.net/Expert/topic/4960/4960982.xml?temp=.3579981
原来Dll是可以传递String的。意外发现!
string[255]应该可以,用String的话如果导出就要用上ShareMem还要带上一个Dll这个Delphi里有说明
据说Delphi写的Dll用其他非Delphi写的程序来调用很容易出错,因为Delphi 在编译时作了某些处理老兄 说说在C#里怎么使用ShareMem啊 具体怎么做?
比如要将一个string转换为pchar,可能这么写:pchar(str);
但要注意在返回字符串建议以这种形式返回:
返回值类型为:pchar
比如说strret:string是你要返回的值,如下返回这个值:
GetMem(result,Length(strret)+1); //result为返回值
StrPCopy(Result,strret);
这样返回的话,就不会有任何问题.pchar与c语言中的char*的作用是一样的
给你一种思路:
再把你的dll封装一次,把你的接口导出来再做成一个新的dll.