Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    2

    [VB.net] chiamare una funzione di una dll c++ non gestita

    Salve a tutti,

    mi trovo nella seguente situazione. Ho una dll non gestita scritta in c++. Ho bisogno di utilizzare le funzioni della dll in una applicazione vb .net 2012.

    La funzione c++ cui devo accedere è la seguente:

    codice:
    BOOL SappSPOpen(BYTE bPort, DWORD dwBaudRate, BYTE bTimeoutConst, HANDLE* lphPort);
    Il codice VB che sto usando è il seguente:

    codice:
    Declare Function openCom Lib "nome_dll.dll" Alias _
        "SappSPOpen" (ByVal bPort As Byte, ByVal dwBaudRate As Long, ByVal bTimeoutConst As Byte, ByRef lphPort As IntPtr) As Boolean
    Purtroppo quando tento di chiamare la funzione ottengo una AccessViolationException di cui non riesco a capire la causa. Suppongo sia dovuta ad una conversione non corretta tra i tipi dati c++ e vb.

    Qualcuno mi sa aiutare?

    Grazie mille!

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Usa un Integer non un Long
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2013
    Messaggi
    2
    Il problema era proprio quello, grazie mille oregon :-)

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da figura4
    Il problema era proprio quello, grazie mille oregon :-)
    Di nulla ... con .NET l'integer è a 32 bit il long a 64
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.