#include "stdafx.h"
#include <windows.h>
#include <winsock.h>
#include <stdio.h>
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR IpCmdLine,int nCmdShow)
{
WSADATA ws;
char buf[100];
WSAStartup(0x0101,&ws);
sprintf(buf,"%d.%d",HIBYTE(ws.wVersion),LOBYTE(ws.wVersion));
MessageBox(0,buf,"info",0);
WSACleanup();
return 0;
}
このプログラムは、コンピューターで使用可能な wsock バージョンの情報を取得するためのものです。「stdafx.h」がプログラムに含まれている理由がわかりません。APIENTRY の意義は何ですか? 代わりに _stdcall を使用できませんか? また、VC++ でコンパイルすることもできません。コードの問題は何ですか?
以下は、プログラムを実行したときのエラーで、コンパイル中にエラーはありません。
--------------------Configuration: sa - Win32 Debug--------------------
Linking...
sa.obj : error LNK2001: unresolved external symbol _WSACleanup@0
sa.obj : error LNK2001: unresolved external symbol _WSAStartup@8
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/sa.exe : fatal error LNK1120: 3 unresolved externals
Error executing link.exe.
sa.exe - 4 error(s), 0 warning(s)