Problem mit ShellExecute unter Visual Studio 2005

Kona

Mitglied
Hallöchen,

ich bin leider noch blutiger Anfänger in Sachen C++. Das will ich gerade ändern, indem ich mit einem Buch mir versuche, das ganze beizubringen. Dabei bin ich auf folgendes Problem gestoßen.

Ich will mit ShellExecute einem Button Leben einhauchen und auf eine Webseite verweisen. Getreu des Beispiels habe ich auch folgendes eingegeben:

Code:
ShellExecute(m_hWnd, "open", "http://www.polyskope.de", NULL, NULL, SW_SHOWNORMAL);

Sollte gehen.
Geht aber nicht.

Visual Studio 2005 gibt mir folgende Fehlermeldung aus:
error C2664: 'ShellExecuteW': Konvertierung des Parameters 2 von 'const char [5]' in 'LPCWSTR' nicht möglich

So, jetzt sitz ich da und hab dazu noch eine ergänzende Frage:

Wieso wird die ShellExecuteW aufgerufen, die tatsächlich als 2. Parameter eine Variable vom Typ LPCWSTR erwartet, wenn ich laut MSDN ShellExecute verwende, die an derselben Position eine Variable vom Typ LPCTSTR erwartet?
 
Mache den Aufruf so; das "_T"-Makro sorgt für eine korrekte Konvertierung der Strings:
C++:
ShellExecute(m_hWnd, _T("open"), _T("http://www.polyskope.de"), NULL, NULL, SW_SHOWNORMAL);
VS2005 erzeugt per Default immer Unicode-Projekte, d.h. es werden damit automatisch immer die "...W"-Varianten der Funktionen verwendet.

Gruß
MCoder
 

Neue Beiträge

Zurück