עבור לתוכן

עזרה MSGBOX ב-C++

Featured Replies

פורסם

אני מנסה לתכנת ב-C++ בסביבת VS2005.

אני מנסה ליצור MSGBOX פשוט ואני נעזר באתר הזה למרות שהוא כותב שם ל-C, ההסברים שלו טובים.

כשאני מנסה לקמפל את הקוד הבא:

#include <windows.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
MessageBox(NULL, "Goodbye, cruel world!", "Note", MB_OK);
return 0;
}

אני מקבל הודעת שגיאה:

error C2664: 'MessageBoxW' : cannot convert parameter 2 from 'const char [22]' to 'LPCWSTR'

חפרתי באינטרנט לגבי ה-LPCWSTR והגעתי לזה שמדובר TYPEDEF של wchar_t.

אין לי מושג אם לעשות המרה, וכל העניין הזה של Win32 app חדש לי.

למישהו יש רעיונות?

פורסם

תנסה:

MessageBox(NULL, "Goodbye, cruel world!", "Note", MB_OK);

או שתגדיר 3 משתנים חדשים של טיפוסי LPCWSTR, כהודעות שאתה רוצה לשים, ותעביר אותם כפרמטרים.

פורסם
  • מחבר

תנסה:

MessageBox(NULL, "Goodbye, cruel world!", "Note", MB_OK);

זהו שזה לא עובד.

או שתגדיר 3 משתנים חדשים של טיפוסי LPCWSTR, כהודעות שאתה רוצה לשים, ותעביר אותם כפרמטרים.

השאלה היא, איך?

ניסיתי:

LPCWSTR str="test string"

אבל גם פה אני מקבל את אותה ההודעה.

פורסם

תשתמש ב-MessageBoxA, זו גרסת ה-Ascii של MessageBox, יש גם MessageBoxW שהיא גרסת ה-Wide ?(Unicode)

ככה זה עם הרבה פונקציות ב-API של Windows. כנראה שהגדרת את הפרויקט שלך ל-Unicode.

אפשר גם להמיר את המחרוזות ל-Unicode -

MessageBoxW(NULL, L"Goodbye, cruel world!", L"Note", MB_OK);

פורסם
  • מחבר

מעולה :xyxthumbs:

שתי השיטות עובדות.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים