结贴,自己看百度瞎鼓捣吧需求解决了。r版是对的,根据7楼回复给了很大启发在百度瞎鼓捣解决的。
总结一下就是怀疑wchar_t*内有0x00导致wcslen计算长度对不上,最后是这样解决的。
#define _UNICODE
_TCHAR* d = (_TCHAR*)lpvoida;//原来是这样指的 wcslen(d)计算出的长度对不上
TCHAR* d = (_TCHAR*)lpvoida;//获取到的LPVOID指过来
const size_t newsize = 8192;
wchar_t dest[newsize];
wcscpy(dest,d);//拷过来
主要需求是这样解决的
DWORD dlen = _tcslen(dest)//这样程序异常。长度对不上
DWORD dlen = _tcslen(dest) * sizeof(dest[0]);//这里+一个*sizeof(dest[0])就解决了。C艹太菜,不知道原理。目前理论解决需求。
我自己也描述不清楚我的需求跟解决方案。但是问题看起来暂时是解决了。
总结一下就是怀疑wchar_t*内有0x00导致wcslen计算长度对不上,最后是这样解决的。
#define _UNICODE
_TCHAR* d = (_TCHAR*)lpvoida;//原来是这样指的 wcslen(d)计算出的长度对不上
TCHAR* d = (_TCHAR*)lpvoida;//获取到的LPVOID指过来
const size_t newsize = 8192;
wchar_t dest[newsize];
wcscpy(dest,d);//拷过来
主要需求是这样解决的
DWORD dlen = _tcslen(dest)//这样程序异常。长度对不上
DWORD dlen = _tcslen(dest) * sizeof(dest[0]);//这里+一个*sizeof(dest[0])就解决了。C艹太菜,不知道原理。目前理论解决需求。
我自己也描述不清楚我的需求跟解决方案。但是问题看起来暂时是解决了。