Ciao ho scritto un'applicazione c# che deve eseguire una funzione che si trova in una dll scritta in cpp. Per farlo uso PInvoke.
La dll è la seguente
Libreria.h
Libreria.cppcodice:#ifndef LIBRERIA #define LIBRERIA extern "C" __declspec(dllimport) #endif LIBRERIA void ApplicaOnMouse(UINT check, UINT value);
All'interno della classe c# ho fatto nel seguente modocodice:#include "stdafx.h" #include <stdlib.h> #define LIBRERIA extern "C" __declspec(dllexport) #include "Libreria.h" void ApplicaOnMouse(UINT check, UINT value){ //da fare... }
Il problema è che quando faccio girare l'applicazione e deve eseguire la chiamata alla funzione non gestita, mi dicecodice:using System.Runtime.InteropServices; public partial class Form1 : Form { [DllImport("C:\\Dll.dll")] public static extern void ApplicaOnMouse(UInt32 c, UInt32 v); .................................................................................................. private void applica() { //devo vedere se è checked o no UInt32 check=0; if(checkBox1.Checked) check=1; //devo prendere il valore della sbarra UInt32 bar=(UInt32)trackBar1.Value; //Chiama la funzione non gestita ApplicaOnMouse(check,bar); } .................................................................................................. }
Eccezione non gestita di tipo 'System.BadImageFormatException' in Mouse.exe
Informazioni aggiuntive: Tentativo di caricare un programma con un formato non corretto. (Eccezione da HRESULT: 0x8007000B)
![]()
Dove ho sbagliato? Grazie a tutti in anticipo!![]()

Rispondi quotando