今天被两个问题折腾了好久,一个是关于结构体数组传递值的问题,就是不知道结构体指针传递形参到子函数后,如何被子函数分解并继续使用,测试过程中老是只能在结构体数组的第一个元素进行操作,后面的操作就会提示“访问越界”之类的提示,真是伤透了脑筋。
第二个问题是关于遇到结构体数组不知道如何直接进行传递值的问题,我思考了很久,也查阅了不少资料,终于找到了下面一条比较麻烦的方法,不过测试基本可行,先贴上代码:
#include <afx.h>
#include <iostream>
using namespace std;
typedef struct
{
CString ni;
CString bi;
}MyStruct,s123;
LPBYTE getInfo()
{
CString mt = L"nihao";
WCHAR *tmep = (WCHAR*)malloc(100);
LPBYTE tem123 = (LPBYTE)tmep;
wsprintf((WCHAR*)tmep, L"%s", mt.GetBuffer());
tmep += (mt.GetLength()+1);
wsprintf((WCHAR*)tmep, L"%s", mt.GetBuffer());
return tem123;
}
void main()
{
DWORD nih = sizeof(MyStruct);
LPBYTE ni = getInfo();
wcout << (WCHAR*)ni << endl;
DWORD temp1 = (wcslen((wchar_t*)ni) + 1)*sizeof(WCHAR);
wcout << (WCHAR*)(ni + temp1) << endl;
MyStruct me;
me.ni = (WCHAR*)ni;
me.bi = (WCHAR*)(ni + temp1);
}
上面这个程序的大致作用如下:

本文总结了在MFC中使用CString时遇到的形参传递问题,包括结构体数组传递与成员变量操作。通过示例代码展示了如何正确传递结构体数组,测试了CString在内存分配和字符串赋值上的特性,以及如何将字符串赋值给CString类型。
最低0.47元/天 解锁文章
482

被折叠的 条评论
为什么被折叠?



