智能设备 C#调用MFC DLL 传参值为汉字的解决方案 CString转存 unsigned char数组
来源:互联网 发布:mysql不允许远程连接 编辑:程序博客网 时间:2024/04/28 13:10
C#中调用:
[DllImport(DLLName, EntryPoint = "pdaAppRead", CharSet = CharSet.Auto, SetLastError = true)]
public static extern short td_select(Int32 Adr, byte[] getData);
private void button1_Click(object sender, EventArgs e)//写
...{
string s = "这是测试1";
s = textBox1.Text;
byte[] b = Encoding.Unicode.GetBytes(s);//Encoding.Default.GetBytes(s);也可以;
td_select(2, s);
}
public static extern short td_select(Int32 Adr, byte[] getData);
private void button1_Click(object sender, EventArgs e)//写
...{
string s = "这是测试1";
s = textBox1.Text;
byte[] b = Encoding.Unicode.GetBytes(s);//Encoding.Default.GetBytes(s);也可以;
td_select(2, s);
}
C++
LPSTR unicodeTOmbcs(CString str)
...{
LPSTR retlpa;
LPCOLESTR lpw;
lpw=(LPCOLESTR)str;
size_t wLen = wcslen( lpw ) + 1; // 宽字符字符长度,+1表示包含字符串结束符
int aLen=WideCharToMultiByte( // 第一次调用,计算所需 MBCS 字符串字节长度
CP_ACP,
0,
lpw, // 宽字符串指针
wLen, // 字符长度
NULL,
0, // 参数0表示计算转换后的字符空间
NULL,
NULL);
LPSTR lpa = new char [aLen];
WideCharToMultiByte(
CP_ACP,
0,
lpw,
wLen,
lpa, // 转换后的字符串指针
aLen, // 给出空间大小
NULL,
NULL);
// 此时,lpa 中保存着转换后的 MBCS 字符串
retlpa=lpa;
delete [] lpa;
return retlpa;
}
int td_select(unsigned char _Adr,unsigned char *_Data)
...{
CString inputstr=(LPCWSTR)_Data;
CString result;
LPSTR lpa=NULL;
unsigned char data[16];
lpa=unicodeTOmbcs(inputstr);//转换
strcpy((char *)data,(const char *)lpa);//data 这是测试1
}
...{
LPSTR retlpa;
LPCOLESTR lpw;
lpw=(LPCOLESTR)str;
size_t wLen = wcslen( lpw ) + 1; // 宽字符字符长度,+1表示包含字符串结束符
int aLen=WideCharToMultiByte( // 第一次调用,计算所需 MBCS 字符串字节长度
CP_ACP,
0,
lpw, // 宽字符串指针
wLen, // 字符长度
NULL,
0, // 参数0表示计算转换后的字符空间
NULL,
NULL);
LPSTR lpa = new char [aLen];
WideCharToMultiByte(
CP_ACP,
0,
lpw,
wLen,
lpa, // 转换后的字符串指针
aLen, // 给出空间大小
NULL,
NULL);
// 此时,lpa 中保存着转换后的 MBCS 字符串
retlpa=lpa;
delete [] lpa;
return retlpa;
}
int td_select(unsigned char _Adr,unsigned char *_Data)
...{
CString inputstr=(LPCWSTR)_Data;
CString result;
LPSTR lpa=NULL;
unsigned char data[16];
lpa=unicodeTOmbcs(inputstr);//转换
strcpy((char *)data,(const char *)lpa);//data 这是测试1
}
- 智能设备 C#调用MFC DLL 传参值为汉字的解决方案 CString转存 unsigned char数组
- dll 中含有unsigned char数组,被C#调用
- MFC下unsigned char和Cstring的转换
- MFC CString转换为char*
- MFC CString转化为char*
- [MFC]CString转换char数组
- MFC CString转char数组
- MFC调用c#的dll
- 怎样把char型数组转存为int型数组
- CString 转 unsigned char *
- CString转为unsigned char
- MFC中CString转char数组的方法
- MFC中CString转换成char数组的问题
- MFC中CString转换成char数组的问题
- MFC中CString转换成char数组的问题
- MFC中CString转换成char数组的问题
- MFC中CString转换成char数组的问题 【转】
- MFC中CString转换成char数组的问题
- db4o Storing/Retrieving/Updating/Deleting structured objects
- ResEdit 1.3.6
- 银行自助设备详细介绍(四)——存款机
- 公司是技术人员还是市场人员更重要?
- 在login.sql文件中设置sql*plus的环境(摘自《Oracle编程艺术》)
- 智能设备 C#调用MFC DLL 传参值为汉字的解决方案 CString转存 unsigned char数组
- 北京信息工程学院、北京信息科技大学 软件工程课程设计全部代码,希望对北信的下一代有用!
- VC中使用SCRIPT 正则写的LRC歌词分析类
- HTML精确定位:scrollLeft,scrollWidth,clientWidth,offsetWidth之完全详解
- 摩羯
- 运算符++的奥秘
- 程序员
- 加密狗
- 60秒出口才