3 Stimmen

MAPIInitialisieren ohne Fehlermeldungsboxen

Eine 64-Bit-Kopie von Outlook ist installiert, und ein 32-Bit-Programm versucht, MAPIInitialize() aufzurufen. Es wird fehlschlagen, was in Ordnung ist, aber es wird auch ein modales Meldungsfeld angezeigt und blockiert, bis das Meldungsfeld beendet wird.

MAPIInitialize error message

Wie kann ich verhindern, dass das sehr wenig hilfreiche Meldungsfenster erscheint?

(Falls es eine Rolle spielt, ich verlinke auf mapi32.lib und rufe es von einem C++-Programm aus auf. Das Betriebssystem ist Windows 7.)

4voto

Dmitry Streblechenko Punkte 52188

Ihr Code ruft am Ende eine 32-Bit-Stub-DLL auf. Sind Sie statisch mit mapi32.dll verlinkt? Sie müssen die richtige dll aus dem Ordner "Programme" laden. LoadLibrary() gibt 0 zurück und GetLastError lautet ERROR_BAD_EXE_FORMAT, wenn die Bitgröße der DLL nicht mit der Ihres Prozesses übereinstimmt.

1 Stimmen

Danke, es funktioniert. Und der Pfad zur richtigen DLL kann mit einer leichten Änderung dieses Codes erhalten werden - msdn.microsoft.com/de-us/library/bb820994.aspx .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X