WriteBinaryFile(__in char* szFilePath, __in char* byteSet);(这个函数在dll里)
第一个是当前程序目录,CString path,我用GetModuleFileName(NULL,szPATH.GetBufferSetLength(MAX_PATH),MAX_PATH);取的。
第二个是写入的内容,从文本框里取内容赋值给控件关联变量m_txt,类型为CString。
类型和函数的参数不同,
我试着用WideCharToMultiByte转成char*。但最后总是出错,运行总是出错。
这两个该怎么传参呢?能给个例子吗?
而且,转完的变量不能传参,要直接写(比如第一个参数直接写成”C:\t.txt")才能传进去
用我转完的变量传进去的只是空值(一串0)
估计是转换错了吧, 要怎么转?
谢谢
可以用 GetModuleFileNameA 和 GetWindowTextA 来直接得到 char* 的字符串。
或者用ATL宏:
WriteBinaryFile(CT2A((LPCTSTR)path)),CT2A((LPCTSTR)m_txt));
csring 有个成员函数getbuffer
CString str = "aaaaa";
char* p = str.getbuffer();
1 const char * CString2charPtr(CString &str) 2 { 3 int len = str.GetLength()*2; 4 char *pc = new char[len+1]; 5 WideCharToMultiByte(CP_ACP,0, str.GetBuffer(), -1, pc, MAX_PATH, NULL, NULL); 6 7 pc[len] = '\0'; 8 str.ReleaseBuffer(); 9 10 return pc; 11 }