Zitat:
Das mit 32bit und 64bit ist immer
etwas schwierig einzustellen in VS finde ich.
Ist doch gut gelöst Debug\Release "COMBO" und dort Konfigurations-Manager starten.
bzgl. x86 und x64 ist so ein Problem.
Was bringt es wenn die Bibliothek RGiesecke.DllExport mit AnyCPU kompiliert wurde das beißt sich doch irgendwie.
Delphi
DLL -> C# über DllImport ist kein Problem.
C#
DLL über DllExport hingegen schon. (Leider)
bsp.
Code:
namespace CalcTest
{
using System.Runtime.InteropServices;
using RGiesecke.DllExport;
public sealed class CalcTest
{
[DllExport(CallingConvention = CallingConvention.StdCall)]
public static int Sum(int a, int b)
{
return a + b;
}
}
}
Delphi.
function Sum(a, b: integer): integer; stdcall; external 'Calctest.Net.dll';
Delphi Anwendung stürzt sofort ab.. läßt sich nicht starten!
Fehler!
Der Fehler
0xc000007b tritt typischerweise auf, wenn die 32-Bit-Version von Windows mit einem 64-Bit-Betriebssystem oder -Anwendungen verwechselt wurde.
Projekt ist aber x86 C#
DLL ebenso jedoch RGiesecke.DllExport AnyCPU ..
EDIT:
RGiesecke.DllExport neu kompiliert 32Bit\x86 alle Frameworks 4.8 trotzdem selber Fehler.