An Legend
Hab die Antwort gefunden. Darauf muss man aber erst mal auch kommen wenn man sich nicht mit C++ auskennt. Man muss eine Konsolenanwendung erstellen und dort in diesem Vorbereitungsfenster dann angeben das es doch eine DLL sein soll.
Hab aber noch eine zweite Frage:
Ich habe jetzt versucht eine DLL mit MinGW zu erstellen und diese dann im C#-Projekt zu benutzen.
Das ist der aktuelle Code:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
// ConsoleApplication1.cpp : Defines the entry point for the console application.
//
#include <iostream>
using namespace std;
extern "C"
__declspec(dllexport)
int
__cdecl
test(int a) {
return a + 1;
}
|
Und diese beiden Kommandozeilen benutze ich um die DLL zu erstellen:
|
Quellcode
|
1
|
g++ -c example_dll.cpp
|
|
Quellcode
|
1
|
g++ -shared -o test.dll test.o -Wl,--subsystem,windows
|
Funktioniert sogar. Die DLL ist im C#-Build-Ordner (Also bin/release).
Aber wenn ich jetzt das C#-Programm starte kommt folgende Fehlermeldung:
Unbehandelte Ausnahme: System.BadImageFormatException: Es wurde versucht eine Datei mit einem falschen Format zu laden (Ausnahme von HRESULT: 0x8007000B)
Was ist jetzt falsch?
mfg