Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 24
  1. #11
    La dllMain è opzionale, in una DLL potresti nn metterla, se però usi dati pubblici globali e hai bisogno di sapere quanti processi e threads si collegano alla tua dll puoi usare la dll main per tenerne traccia.

    comunque una definizione base della DllMain potrebbe essere

    codice:
    BOOL APIENTRY DllMain( HANDLE hModule, 
                           DWORD  ul_reason_for_call, 
                           LPVOID lpReserved
    					 )
    {
        switch (ul_reason_for_call)
    	{
    		case DLL_PROCESS_ATTACH:
    		case DLL_THREAD_ATTACH:
    		case DLL_THREAD_DETACH:
    		case DLL_PROCESS_DETACH:
    			break;
        }
        return TRUE;
    }
    devi semplicemente metterla così com'è nel tuo codice, ricorda di includere windows.h e di linkare come dll, inoltre se usi un file def anche la dllmain va inserita nei simbli da esportare.

  2. #12
    Utente di HTML.it L'avatar di Grunt
    Registrato dal
    Dec 2001
    Messaggi
    246
    Quindi se ho capito bene, io quella funzione materialmente non la richiamerò mai, sarà richiamata a run-time nel momento in cui carico la dll.
    La inserisco in un file cpp insieme alle altre funzioni che userò e che metterò nel file .def.
    Ho capito bene?

  3. #13
    Esatto.

  4. #14
    Utente di HTML.it L'avatar di Grunt
    Registrato dal
    Dec 2001
    Messaggi
    246
    Ti ringrazio..... sei stato davvero gentilissimo!

  5. #15
    Utente di HTML.it L'avatar di Grunt
    Registrato dal
    Dec 2001
    Messaggi
    246
    Scusate ancora...... è sorto un altro problema....
    Se non inserisco la DllMain e provo e registrare la Dll mi dice che manca l'EntryPoint, se inserisco la DllMain mi dà questo errore:
    codice:
    mfcs42d.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in ChessOne.obj
    mfcs42d.lib(dllmodul.obj) : warning LNK4006: _DllMain@12 already defined in ChessOne.obj; second definition ignored
    Non so + che fare.... la DllMain che inserisco è quella che è postata + sopra!!! Vi prego aiutatemi.....

  6. #16
    Utente di HTML.it L'avatar di minoz
    Registrato dal
    Oct 2001
    Messaggi
    219
    Io sono finalmente riuscito a farlo ed ho utilizzato questa funzione

    Codice PHP:
    BOOL APIENTRY DllMainHANDLE hModule,
    DWORD ul_reason_for_call,
    LPVOID lpReserved
    )
    {
    return 
    TRUE;


  7. #17
    Utente di HTML.it L'avatar di minoz
    Registrato dal
    Oct 2001
    Messaggi
    219
    E le funzioni nella dll le ho create in questo modo...

    codice:
    extern "C" __declspec (dllexport) long __stdcall ReturnLong(){
       return 100;
    }

  8. #18
    Utente di HTML.it L'avatar di minoz
    Registrato dal
    Oct 2001
    Messaggi
    219
    Compilando la dll con VC++ 6 mi ha creato un file nomedll.exp che aperto con un editor di testo tra i vari caratteri incomprensibili indica gli entrypoint da usare con VB.

    La funzione VB sarà:

    Declare Funtion nomeQualsiasi As "nomeFunz@1"( parametri..... )

    @1 è l'entry point

  9. #19
    Utente di HTML.it L'avatar di Grunt
    Registrato dal
    Dec 2001
    Messaggi
    246
    Ho provato ad inserire questa DllMain e a dichiarare le funzioni come mi hai appena postato.... il problema continua!!!
    Come hai creato il progetto?
    Io ho usato MFC AppWizard(Dll).
    Nel file def ho inserito:
    codice:
    ; ChessOne.def : Declares the module parameters for the DLL.
    
    LIBRARY      "ChessOne"
    DESCRIPTION  'ChessOne Windows Dynamic Link Library'
    
    EXPORTS
        ; Explicit exports can go here
    	X_MossaSpeciale
    	Muovi
    	NewPartita
    	DllMain
    Non so + cosa fare..... perchè dice che la DllMain è già definita?

  10. #20
    Utente di HTML.it L'avatar di minoz
    Registrato dal
    Oct 2001
    Messaggi
    219
    Se usi l'appWizard ho idea che te la inserisca automaticamente la dllMain.
    Io non ho creato file def, e mi funziona lo stesso..

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.