[VS 2005] Win32-C++-Projekt in ein C#-Projekt einbinden

lukasS

Erfahrenes Mitglied
Hallo,

ich habe heute sämtliche Foren nach Beispielen durchstöbert und bin auch gut fündig geworden, leider hat das bei mir, warum auch immer nicht funktioniert.
Ich möchte eine DLL aus meiner Win32-Anwendung in mein C#-Projekt referenzieren.
Beide Projekte sind in einer Solution und wurden mit Visual Studio 2005 erzeugt, sind auch beide fehlerfrei (da sie fast leer sind).

Ich habe in meinem C#-Projekt unter References das Win32-Projekt eingebunden, anschließend ein wollte die Funktion "eineFunktion" aufrufen und auf in der debuggen.

C++ - Funktion
Code:
__declspec(dllexport) void eineFunktion()
{
   printf("DLL\n");
   return;
}

C# DLLImport
Code:
      [DllImport("win32_cpp_dll.DLL", CharSet = CharSet.Ansi,
          CallingConvention = CallingConvention.Cdecl)]
      private static extern void eineFunktion();

Nachdem ich die Funktion "eineFunktion" aufgerufen habe, kam die Meldung:

Die DLL win32_cpp_dll.DLL: Das angegebene Modul wurde nicht gefunden. (Ausnahme von HRESULT: 0x8007007E) kann nicht geladen werden.

Wenn ich direkt die DLL referenzieren will, kriege ich die Meldung:
A reference to "...pfad...\win32_cpp_dll.dll" could not be added. Please make sure that the file is accessible, and that is it a valid assembly or COM component.

Ich habe schon recht viel ausprobiert, aber leider immer noch ohne Erfolg.
Hat jemand eine Idee?

Danke schonmal!

Gruß

Lukas
 
Ich bin mir jetzt nicht ganz sicher, aber musst du nicht bei deiner Funktion noch:

Code:
extern "C" __declspec(dllexport) void eineFunktion()
{
   printf("DLL\n");
   return;
}

angeben? Versuch das mal.
 
Hallo Konstantin,

das mit dem Extern "C" habe ich auch schon versucht, hat nicht funktioniert.

Danke trotzdem!

Gruß

Lukas
 

Neue Beiträge

Zurück