智能设备开发中C#调用DLL传参及返回字符串的方法
来源:互联网 发布:钓鱼潮汐软件下载 编辑:程序博客网 时间:2024/06/02 03:16
调试成功的
DLL 声明
int __declspec(dllexport) __stdcall pdaAppTest(TCHAR *_Data);
int __declspec(dllexport) __stdcall pdaAppTest2(TCHAR **_Data);
///////////////////程序
int pdaAppTest(TCHAR *_Data)
{
StringCchCopy(_Data,256,L"终于可以了"); return 0;
}
int pdaAppTest2(TCHAR **_Data)
{
StringCchCopy(*_Data,10,L"hellohello");
return 0;
}
int pdaAppWriteTest(unsigned char *_Data,TCHAR *_ReData)
{
CString tmp;
unsigned char tmpChar[6]="e3l5o";
*_Data=*tmpChar;
tmp.Format(L"%s",_Data);
StringCchCopy(_ReData,10,tmp);
return 0;
}
//////////////////////////////////////////////////////////////////////////////////////////////
C# 调用
[DllImport(DLLName, EntryPoint = "pdaAppTest",CharSet=CharSet.Unicode , SetLastError = true)]
public static extern short pdaAppTest( StringBuilder value);
[DllImport(DLLName, EntryPoint = "pdaAppTest2", CharSet = CharSet.Auto, SetLastError = true)]
public static extern short pdaAppTest2(ref string value);
private void button2_Click(object sender, EventArgs e)
{
string filename = "";
pdaAppTest2(ref filename);
label1.Text = filename;
//filename="hellohell"
}
private void button10_Click(object sender, EventArgs e)
{
StringBuilder strTmp = new StringBuilder(64);
pdaAppTest(strTmp);
label1.Text = strTmp.string();//终于可以了
}
private void button11_Click(object sender, EventArgs e)
{
StringBuilder strTmp2 = new StringBuilder();
StringBuilder strTmp = new StringBuilder("gok");
pdaAppWriteTest(strTmp, strTmp2);//strTmp=strTmp2="eok"
label1.Text = strTmp.ToString()+strTmp2.ToString();
}
/////////////////////////////////////////////////////////////////////
问题已经解决谢谢waterine;
不过我看网上还有说用C# byte来接收DLL返回的字符串,不知道大家谁知道,贴上来谢谢!!
- 智能设备开发中C#调用DLL传参及返回字符串的方法
- C#智能设备中程序的调用
- C#调用C++DLL的小总结8---C++Dll中函数返回字符串指针
- C#调用Delphi Dll返回字符串的示例
- C#调用C++Dll字符串返回为空的问题
- DLL开发及调用的一种方法
- 智能设备 C#调用MFC DLL 传参值为汉字的解决方案 CString转存 unsigned char数组
- C#中dll调用方法
- 智能设备程序开发中获得控件名称的方法
- PHP调用C#开发的dll类库方法
- C#中调用非托管的DLL及参数传递
- C#中调用非托管的DLL及参数传递
- 在C#中调用C++Dll函数的方法
- 关于C#中调用DLL文件的方法
- 关于C++调用C#封装的dll后,获取C#中string返回值的问题
- Ext中读取DWR方法调用返回的XML字符串
- C#调用C++的dll及MATLAB的dll的方法(一)
- C#调用C++的dll及MATLAB的dll的方法(二)
- ASP.NET2.0实现无刷新客户端回调
- PLSQL学习笔记
- 去除自校验
- Dreamweaver高级查找替换方法
- 15天学会jQuery(ajax框架) (0-5)
- 智能设备开发中C#调用DLL传参及返回字符串的方法
- java 验证码彩色验证码
- 15天学会jQuery(ajax框架) (6-10)
- 15天学会jQuery(ajax框架) (11-15)
- 图形验证码的破解与设计
- c&c++
- Debugging JavaScript in Visual Studio
- Quartz从入门到进阶 (转http://www.luyikk.com/topic-7953.aspx)
- 使用ado 数据集对象浏览表中记录不支持数据访问上一条