Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [c] creare una dll con dev c++

    salve a tutti mi stavo dilettando un pò sulle dll ma non ho trovato molto in giro per la rete!
    Allora io uso dev c++ come ambiente di sviluppo faccio un nuovo proggetto e metto dll,ora lui mi crea 2 file uno dllmain.cpp
    Codice PHP:
    /* Replace "dll.h" with the name of your header */
    #include "dll.h"
    #include <windows.h>
    #include <stdio.h>
    #include <stdlib.h>

    DLLIMPORT void HelloWorld ()
    {
        
    MessageBox (0"Hello World from DLL!\n""Hi"MB_ICONINFORMATION);
    }


    BOOL APIENTRY DllMain (HINSTANCE hInst     /* Library instance handle. */ ,
                           
    DWORD reason        /* Reason this function is being called. */ ,
                           
    LPVOID reserved     /* Not used. */ )
    {
        switch (
    reason)
        {
          case 
    DLL_PROCESS_ATTACH:
            break;

          case 
    DLL_PROCESS_DETACH:
            break;

          case 
    DLL_THREAD_ATTACH:
            break;

          case 
    DLL_THREAD_DETACH:
            break;
        }

        
    /* Returns TRUE on success, FALSE on failure */
        
    return TRUE;

    ed un altro dll.h

    Codice PHP:
    #ifndef _DLL_H_
    #define _DLL_H_

    #if BUILDING_DLL
    # define DLLIMPORT __declspec (dllexport)
    #else /* Not BUILDING_DLL */
    # define DLLIMPORT __declspec (dllimport)
    #endif /* Not BUILDING_DLL */


    DLLIMPORT void HelloWorld (void);


    #endif /* _DLL_H_ */ 
    ora io mi stavo chiedendo dove devo scrivere le mie funzioni e che funzione usare per esportarle infine mi servirebbe sapere anche come poi usare le mie dll in altre applicazioni!

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Questa funzione

    DLLIMPORT void HelloWorld ()
    {
    MessageBox (0, "Hello World from DLL!\n", "Hi", MB_ICONINFORMATION);
    }

    viene inclusa come esempio di funzione esportata.

    In maniera simile puoi scrivere le tue.

  3. #3
    ciao grazie,ho compialto il proggetto e mi crea la dll ed alcuni file ora se io volessi usare la funzione Helloworld in un mio eseguibile come faccio?

  4. #4
    up,comunque mi servirebbe poter creare un applicazione che suddivida le funzioni nelle dll specifiche che poi posso richiamare quando mi servono e scaricarle quando non mi servono più!

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    83
    Per utilizzare la DLL basta che crei un progetto C++ e linki la libreria statica(.A generata automaticamente durante la compilazione della DLL insieme l'header)... Quindi devi andare su Opzione progetto e devi individuare il linker, tra i parametri clicchi su sfoglia e selezioni la libreria statica da usare(che in genere inizia con "lib"NomeLibreria.a)...

    Successivamente nel programma devi includere anche l'header della DLL e poi puoi cominciare ad usare nel tuo programma tutte le funzioni che vuoi

    Spero sono stato chiaro
    #include <pgnvni.h>

  6. #6
    ciao grazie per il chiarimento,solo un'altra cosa e se io volessi collegare la librerie dinamicamente coem posso fare?
    esempio: ho degli if che mi dicono in base a delle istruzioni devono chiamare delle funzioni presenti in una librerie io come posso richiamare la dll usarl ae scaricarla al termine dell'utilizzo??
    quasi dimenticavo avendo una dll di un altro programma è possibile utilizzarla?

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Devi usare le API LoadLibrary e GetProcessAddress ... trovi tutto su MSDN.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.