winapi - Grundlæggende Windows Programmering spørgsmål i VS2005

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har oprettet en win32-konsol-applikation (uden mulighed for at aktivere forkompileret header).
Og nu er min kildekode som dette, er der to compiler fejl.


// AFormattingMsgBox.cpp : Defines the entry point for the console application.
//
#include <windows.h>
#include "stdafx.h"


//int \_tmain(int argc, \_TCHAR* argv[])
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
                     PSTR szCmdLine, int iCmdShow)
{
    int cxScreen, cyScreen;

    cxScreen = GetSystemMetrics(SM\_CXSCREEN);
    cyScreen = GetSystemMetrics(SM\_CYSCREEN);

    MessageBoxPrintf(TEXT("ScrnSize"), TEXT("The screen is \%i pixels wide by \%i pixels high."), cxScreen, cyScreen);

    return 0;
}


int CDECL MessageBoxPrintf(TCHAR * szCaption, TCHAR * szFormat, int x, int y)
{
    TCHAR szBuffer [1024];
    va\_list pArgList;

    va\_start(pArgList, szFormat);

    \_vsntprintf(szBuffer, sizeof(szBuffer) / sizeof(TCHAR), 
                szFormat, pArgList);

    va\_end(pArgList);

    return MessageBox(NULL, szBuffer, szCaption, 0);

}


Compiler fejl.



  fejl C3861: 'MessageBoxPrintf': identifikator ikke fundet

  
  fejl C2365: 'MessageBoxPrintf': omdefinering; tidligere definition var 'tidligere
  ukendt identifikator



Hvordan kan jeg rette fejlene. Tak for din læsning og svar.

Bedste reference


Angiv enten funktionen MessageBoxPrintf før WinMain-funktionen eller tilføj en prototype før winMain. Du tilføjer en prototype ved at indtaste følgende linje:


int CDECL MessageBoxPrintf(TCHAR * szCaption, TCHAR * szFormat, int x, int y);