Visualizzazione dei risultati da 1 a 2 su 2

Discussione: PInvoke

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    16

    PInvoke

    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!

  2. #2
    Utente di HTML.it L'avatar di albgen
    Registrato dal
    Jun 2005
    Messaggi
    3,249
    Credo si un problema di compilazione per esempio hai creato la dll a 64bit e la stai usando in un'applicazione c# a 32 bit.
    Prova a compilare l'app c# con "anycpu"
    I got the remedy

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.