Я взял на себя задачу попробовать запустить более старую программу под Vista / Win7.
Код выглядит как код c, но "странно"
foo.h:
int PASCAL WinMain(HANDLE, HANDLE, LPSTR, int);
BOOL InitApplication(HANDLE);
BOOL InitInstance(HANDLE, int);
long CALLBACK __export MainWndProc(HWND, UINT, WPARAM, LPARAM);
foo.c:
int PASCAL WinMain(hInstance, hPrevInstance, lpCmdLine, nCmdShow)
HANDLE hInstance; /* current instance */
HANDLE hPrevInstance; /* previous instance */
LPSTR lpCmdLine; /* command line */
int nCmdShow; /* show-window type (open/icon) */
{
/* rest of the code follows here */
Мои знания c ограничены, и этот синтаксис не похож ни на что, что я когда-либо видел.Программа работала под WinXP, но не под Vista / Win7 - я подозреваю, что 16-битная компиляция (это это , что старый ...)
Код поставляется с make-файлом, который заявляет:
# Microsoft Visual C++ generated build script - Do not modify
...
Но ни VS2010, ни gcc, кажется, не в состоянии скомпилировать этот код (во всяком случае, не так, как я это пробовал ...) Используя VS2010, пустое решение (vc ++), первые ошибки:
error C2061: Syntaxerror: Identifier: 'MainWndProc' in line 4 of foo.h
error C2059: Syntaxerror: ';' in line 4 of foo.h
error C2059: Syntaxerror: 'Type' in line 4 of foo.h
Есть ли простой способ получить это скомпилированное на Win7 / 64bit?