我正在从事Win32项目(Visual Studio 2012)。用户可以输入多个标记及其坐标和名称。
现在,我要在列表框中添加所有标记名称作为单独的项目;但是使用下面的代码,我在列表框中什么都看不到:

string MarkerNames[10];
CMarkerList *Modeless;

    if (!Modeless)
        Modeless = new CMarkerList;

    if (!::IsWindow(Modeless->GetSafeHwnd()))
        Modeless->Create(IDD_DIALOG2,NULL);

    Modeless->ShowWindow(SW_SHOW);
    HWND hdlg = FindWindow(NULL,_T("Dialog"));


    int index1 = SendDlgItemMessage(hdlg, IDC_LIST2, LB_ADDSTRING, 0, (LPARAM)(MarkerNames[0].c_str()));


哪个Modeless是我的对话框的对象,而MarkerNames是一个数组,我将标记的名称保存在其中;
如果我输入一个明确的字符串,例如“ TEST”,它可以工作,但是将参数传递给它有问题;

有什么问题,我该如何纠正?

非常感谢你的帮助 :)

最佳答案

_T的使用表明您正在为Unicode字符集构建程序,这是默认设置。如果是这种情况,则应使用wstring而不是string。

10-06 01:56