Hallo Experten,
ich habe ein sehr seltames Problem:
Ich habe ein kleines Programm in C/C++ geschrieben, das nichts anderes macht, als eine
Meldung auszugeben. (Datei xxx.xx) nicht gefunden. (Mit einem Beenden-Button).
Nun meldet AVIRA:
Virus oder unerwünschtes Programm gefunden !
Zugriff verweigert.
TR/Dldr.Small.ewd.2
Ich kann mir das nicht erklären. Vielleicht hat ja jemand eine Idee.
Hier der Quellcode:
#include
LRESULT CALLBACK
MainWndProc (HWND hwnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
{
static HWND hwndButton = 0;
static int cx, cy;
HDC hdc;
PAINTSTRUCT ps;
RECT rc;
switch (nMsg)
{
case WM_CREATE:
{
TEXTMETRIC tm;
hdc = GetDC (hwnd);
SelectObject (hdc, GetStockObject (DEFAULT_PALETTE));
//SelectObject (hdc, GetStockObject (SYSTEM_FIXED_FONT));
GetTextMetrics (hdc, &tm);
cx = tm.tmAveCharWidth * 14;
cy = (tm.tmHeight + tm.tmExternalLeading) * 1.7;
ReleaseDC (hwnd, hdc);
hwndButton = CreateWindow (
„button“,
„Schliessen“,
WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON ,
0, 0, cx, cy,
hwnd,
(HMENU) 1,
((LPCREATESTRUCT) lParam)->hInstance,
NULL
);
return 0;
break;
}
case WM_DESTROY:
PostQuitMessage (0);
return 0;
break;
case WM_PAINT:
hdc = BeginPaint (hwnd, &ps);
GetClientRect (hwnd, &rc);
SetTextColor( hdc, RGB( 0, 0, 0) );
SetBkColor ( hdc, RGB( 211, 211, 211) );
TextOut ( hdc, 20, 20, „Die Datei lib32.dll fehlt oder ist defekt !“, 45);
rc.bottom = rc.bottom / 1.5;
DrawText (hdc, " ", -1, &rc,
DT_CENTER | DT_VCENTER);
EndPaint (hwnd, &ps);
return 0;
break;
case WM_SIZE:
if (hwndButton &&
(wParam == SIZEFULLSCREEN ||
wParam == SIZENORMAL)
)
{
rc.left = (LOWORD(lParam) - cx) / 2;
rc.top = HIWORD(lParam) * 2.5 / 4 - cy / 2;
MoveWindow (
hwndButton,
rc.left, rc.top, cx, cy, TRUE);
}
break;
case WM_COMMAND:
if (LOWORD(wParam) == 1 &&
HIWORD(wParam) == BN_CLICKED &&
(HWND) lParam == hwndButton)
{
DestroyWindow (hwnd);
}
return 0;
break;
}
return DefWindowProc (hwnd, nMsg, wParam, lParam);
}
int STDCALL
WinMain (HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmd, int nShow)
{
HWND hwndMain; window.
MSG msg; structure.
WNDCLASSEX wndclass; structure.
char*szMainWndClass = „WinTestWin“;
// Hintergrund Fenster
HBRUSH MyBrush = CreateSolidBrush( RGB( 211, 211, 211 ) ); //grauer Hintergrund
memset (&wndclass, 0, sizeof(WNDCLASSEX));
wndclass.lpszClassName = szMainWndClass;
wndclass.cbSize = sizeof(WNDCLASSEX);
wndclass.style = CS_HREDRAW | CS_VREDRAW;
wndclass.lpfnWndProc = MainWndProc;
wndclass.hInstance = hInst;
wndclass.hIcon = LoadIcon (NULL, IDI_ERROR);
wndclass.hIconSm = LoadIcon (NULL, IDI_ERROR);
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW);
wndclass.hbrBackground = MyBrush;
RegisterClassEx (&wndclass);
hwndMain = CreateWindow (
szMainWndClass,
" ERROR",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
320, 160, NULL, NULL, hInst, NULL
);
ShowWindow (hwndMain, nShow);
UpdateWindow (hwndMain);
while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg);
DispatchMessage (&msg);
}
return msg.wParam;
}
// EOF