Ich versuche, eine Win32-Desktop-Anwendung zu erstellen, die einfach den Hostnamen des Computers ausgibt, auf dem es ausgeführt wird. Ich habe es geschafft, eine solche C++ - Konsolenanwendung mit WSADATA-Struktur und gethostname() zu erstellen, die gut funktioniert. Wenn ich jedoch versuche, sie in meiner Win32-Desktop-Anwendung zu implementieren, funktioniert es überhaupt nicht.Wie kann ich gethostname Ergebnis in VS 2017 C++ Win32-Anwendung ausdrucken?
Mit Blick auf die Fehlermeldungen zeigen sie ein TCHAR - Char Inkompatibilität/Konvertierungsproblem ... Irgendwelche Vorschläge, wie diese Anwendung funktioniert?
win32project.cpp:
#include "stdafx.h"
...
case WM_PAINT:
{
PAINTSTRUCT ps;
TCHAR szPath[128] = _T("");
WSADATA wsaData;
WSAStartup(MAKEWORD(2, 2), &wsaData);
gethostname(szPath, sizeof(szPath));
WSACleanup();
HDC hdc = BeginPaint(hWnd, &ps);
TextOut(hdc, 10, 10, szPath, _tcslen(szPath));
EndPaint(hWnd, &ps);
}
break;
...
Inhalt der stdafx.h in win32project.cpp oben enthalten:
#pragma once
#include "targetver.h"
#define WIN32_LEAN_AND_MEAN
// Windows Header Files:
#include <windows.h>
// C RunTime Header Files
#include <stdlib.h>
#include <malloc.h>
#include <memory.h>
#include <tchar.h>
// additional headers
#include <iostream>
#include <string>
#include <Winsock2.h>
#pragma comment(lib, "Ws2_32.lib")
* Blick auf die Fehlermeldungen * - Bitte posten Sie diese e Fehlermeldungen. Auch ein 'TCHAR' ist kein' char', wenn die App Unicode ist. – PaulMcKenzie
Kaum zu wissen, was man davon halten soll. Der Code kompiliert nicht? Der Code wird kompiliert, verhält sich aber nicht wie beabsichtigt, wenn er ausgeführt wird? Für ersteres lesen Sie die Fehlermeldungen und denken Sie nach. Debuggen Sie Ihr Programm. –
Ernsthaft, wir leben im 21. Jahrhundert. Lege den 'TCHAR' bereits ab. Das war ein Hilfsmakro für den Übergang von der Windows 95-Zeile zur Windows NT-Zeile. – MSalters