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 文字セット用にプログラムを構築していることを示唆しています。その場合は、string の代わりに wstring を使用する必要があります。

于 2014-07-08T12:11:23.970 に答える