Ab wann laufen VC++6.0 Programme?
-
Hallo
Ich habe ein MFC-Programm mit dem VC++6.0 geschrieben.
Nachdem ich eine Funktion die es erst ab Win98 gibt dynamisch lade, wenn es diese gibt, startet das Programm unter Window95a immer noch nicht, Fehler: Exportfehler in mfc42.dll:65xxWeiß wer ab wann mfc42.dll(Version für 6.0) in welchem Windows drin war?
Wie sieht es rechtlich aus wenn ich einfach die notwendigen Dateien(mfc42.dll,msvcrt.dll,usw..) meinem Programm beilege?Danke für die hilfe
schönen Tag noch
Tristan
-
Zeig mal wie du function dynamisch lädst
-
Das ist die Release Version von der Du sprichst oder ?
Devil
-
Zeig mal wie du function dynamisch lädst
Wenn ich AlphaBlend statisch linke bekomme startet das Programm nicht weil bei unter Win98 keine msimg32.dll gibt. Also schau ich ob es Win98 ist und wenn dann lade ich die Library und hohle die Funktion, und rufe diese dann auch nur auf:
Wenn dich das echt interessiert:typedef bool (*alpha_proc)( HDC hdcDest, // handle to destination DC int nXOriginDest, // x-coord of upper-left corner int nYOriginDest, // y-coord of upper-left corner int nWidthDest, // destination width int nHeightDest, // destination height HDC hdcSrc, // handle to source DC int nXOriginSrc, // x-coord of upper-left corner int nYOriginSrc, // y-coord of upper-left corner int nWidthSrc, // source width int nHeightSrc, // source height BLENDFUNCTION blendFunction // alpha-blending function); ); alpha_proc pAlpha_proc=NULL; HMODULE h; OSVERSIONINFO osvi; osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx (&osvi); bIsWindows98orLater = (osvi.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) && ( (osvi.dwMajorVersion > 4) || ( (osvi.dwMajorVersion == 4) && (osvi.dwMinorVersion > 0) ) ); if(bIsWindows98orLater) { h = LoadLibrary("msimg32.dll"); alpha_proc pAlpha_proc = (alpha_proc)GetProcAddress(h, "AlphaBlend"); if( pAlpha_proc == NULL) ::MessageBox(0,"AlphaBend in msimg32.dll konnte nicht gefunden werden.",0,0); // Aufruf if( pAlpha_proc == NULL) pAlpha_proc (hdc,x,y, bm.bmWidth, bm.bmHeight, hdcMem, 0,0, bm.bmWidth,bm.bmHeight, bf); }@devil81
Ja ist die Release Funktion:
Lieg doch daran das bei Win95a die mfc42.dll in Version 4 vorliegt und später immernoch so hieß obwohl version 6.0 drin ist.
-
if( pAlpha_proc == NULL) ::MessageBox(0,"AlphaBend in msimg32.dll konnte nicht gefunden werden.",0,0); // Aufruf if( pAlpha_proc == NULL) pAlpha_proc (hdc,x,y, bm.bmWidth, bm.bmHeight, hdcMem, 0,0, bm.bmWidth,bm.bmHeight, bf);Das sollte denk ich mal anders heissen oder?
if( pAlpha_proc == NULL) => hast du 2mal drin...Hab dir wahrscheins net geholfen, aber mach das mal weg...