Ich habe eine C# -Anwendung, die eine DLL verwendet, wie ich C++ für einige nicht verwaltete Funktionen der user32-API benötigen (ich kann PInvoke nicht für verwenden Das). Ich kompiliere sowohl die Anwendung als auch die DLL für x86-Architekturen, und alles funktioniert gut unter Windows 7 32 Bit. Jetzt ist das Problem, unter Windows 7 64 Bit, stürzt die Anwendung ab, wenn ich versuche, die Funktion zu verwenden, die auf der DLL beruht (aber der ganze Rest funktioniert gut).C# -Programm und C++ DLL kompiliert für 32-Bit-Systemabsturz auf 64-Bit-System
Ich vermute, dass dies ein 32/64 Bit-Problem ist, also habe ich versucht, die DLL für x64-Architekturen neu zu kompilieren, und jetzt kann ich zur Laufzeit auswählen, welche DLL zwischen x86 und x64 geladen werden soll. Aber es stürzt immer noch ab, wenn ich versuche, die Funktion zu verwenden, die auf der DLL beruht (was sinnvoll ist, wenn ich versuche, eine 64-Bit-DLL in ein 32-Bit-Programm zu laden). Ich habe noch nicht versucht, sowohl die Anwendung als auch die DLL für x64 zu kompilieren. Ich vermute, es würde funktionieren, aber ich würde zwei verschiedene Installateure brauchen, und ich möchte nicht dorthin gehen. Irgendeine Ahnung?
Wenn beide für x86 kompiliert werden, sollte es funktionieren. Kannst du es auf einem 64bit System debuggen und mehr Details geben? – Henrik
Das 64-Bit-System, das ich für den Test verwendet habe, war der Computer eines Freundes. Um es zu debuggen, muss ich Windows 7 64 Bit in vmware oder vbox installieren, was ich tun kann, aber es wird einige Zeit dauern, es einzurichten. – Manu
Haben Sie die 32-Bit-CRT-DLLs auf dem 64-Bit-System? –