1

我正在开发一个 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”,它可以工作,但是将参数传递给它会出现问题;

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

非常感谢你的帮助 :)

4

1 回答 1

0

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

于 2014-07-08T12:11:23.970 回答