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
codice:
#ifndef LIBRERIA
#define LIBRERIA extern "C" __declspec(dllimport)
#endif
LIBRERIA void ApplicaOnMouse(UINT check, UINT value);
Libreria.cpp
codice:
#include "stdafx.h"
#include <stdlib.h>
#define LIBRERIA extern "C" __declspec(dllexport)
#include "Libreria.h"
void ApplicaOnMouse(UINT check, UINT value){
//da fare...
}
All'interno della classe c# ho fatto nel seguente modo
codice:
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);
}
..................................................................................................
}
Il problema è che quando faccio girare l'applicazione e deve eseguire la chiamata alla funzione non gestita, mi dice
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!