c++传CString到c#
2015-09-08 19:30
441 查看
c++提供给c#的接口要获取CString
c#调用:
IntPtr ptr = new IntPtr();
GetErrorStr( ref ptr);
string str = Marshal.PtrToStringAuto(ptr);
DeleteMem(ptr);// 释放内存
c++接口
BOOL WINAPI GetErrorStr( wchar_t** strInfo)
{
CString str = _T("test");
int len = sizeof(wchar_t) * (str.GetLength() + 1) ;
*strInfo = new wchar_t[len];
memset(*strInfo, 0, len);
wcscpy_s(*strInfo, len, CT2CW(str));
return TRUE;
}
BOOL WINAPI DeleteMem(void *data)
{
if (data != NULL)
{
delete data;
data = NULL;
}
return TRUE;
}
c#调用:
IntPtr ptr = new IntPtr();
GetErrorStr( ref ptr);
string str = Marshal.PtrToStringAuto(ptr);
DeleteMem(ptr);// 释放内存
c++接口
BOOL WINAPI GetErrorStr( wchar_t** strInfo)
{
CString str = _T("test");
int len = sizeof(wchar_t) * (str.GetLength() + 1) ;
*strInfo = new wchar_t[len];
memset(*strInfo, 0, len);
wcscpy_s(*strInfo, len, CT2CW(str));
return TRUE;
}
BOOL WINAPI DeleteMem(void *data)
{
if (data != NULL)
{
delete data;
data = NULL;
}
return TRUE;
}
相关文章推荐
- C++中extern “C”含义深层探索
- C++一些语法总结
- C++primer 阅读笔记-模板与泛型编程(效率与灵活性+)
- c++ 多线程中 创建EXCEl应用程序失败解决办法
- 钉钉CPP 难道是communicate plus plus
- C++/Java中继承关系引发的调用关系详解
- 可调用对象与function
- const在函数前与函数后的区别
- C++设计模式--单例、策略模式
- 算法—判断整数序列是不是二元查找树的后序遍历结果
- c++复制函数的区别
- C++ 插入排序并统计数值出现的次数
- C/C++ 编写一个通用的Makefile 来编译.c .cpp 或混编
- c++ 解析eps文件
- C++宏定义详解
- c++ int转换为枚举类型
- C++_string_basic_string::c_str() 与 basic_string::data() 区别
- 【面试算法系列】已知二叉树的前序和中序遍历重建二叉树 - C语言实现
- 确定public继承出来的是Is_a关系(Effective C++_32)
- leetcode--Find Minimum in Rotated Sorted Array II ---C++