Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [c]dll

  1. #1

    [c]dll

    Cosa sbaglio???
    codice:
    #include "dll.h"
    #include <windows.h>
    #include <stdio.h>
    #include <stdlib.h>
    
    #define STRICT  
    #define WIN32_LEAN_AND_MEAN 
    
    
    DLLIMPORT void PlugInfo(char * name, char * autor)
    {
        char * msg;
        strcpy(msg, name);
        strcpy(msg, " by ");
        strcpy(msg, autor);
        strcpy(msg, "\n");
        MessageBox (0, msg, "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;
    }
    
    #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 PlugInfo(char * name, char * autor);
    
    
    #endif /* _DLL_H_ */
    
    #include <stdio.h>
    #include <windows.h>
    
    typedef void (*Plug)(char *, char *);
    
    int main(int argc, char * argv[])
    {
       Plug * funz;
       HMODULE mod = LoadLibrary("g.dll");
       funz = (Plug *)GetProcAddress(mod, "PlugInfo");
       funz("Plug esemply", "Luca");
       FreeLibrary(mod);
       return 0;
    }
    La stupidità umana e l'universo sono infinite.
    Della seconda non sono certo(Einstein)

    Gnu/Linux User

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    4
    prima che analizzo il codice che errore ti da...?

  3. #3
    Mi dice che funz nn è una funz valida.
    La stupidità umana e l'universo sono infinite.
    Della seconda non sono certo(Einstein)

    Gnu/Linux User

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    4
    in generale nella dll:
    ***********************


    extern "C" __declspec( dllexport ) void PlugInfo(char*, char*);

    extern "C" __declspec( dllexport ) void PlugInfo(char* name, char* author)
    {
    ...
    }


    il chiamante invece:
    ********************

    typedef void (WINAPI * FUNZEXPORT) (char*, char*)

    HANDLE hLib;
    FUNZEXPORT fnz;

    if ( hLib = LoadLibrary ("libreria.dll") )
    {
    fnz = (FUNZEXPORT*) GetProcAddress (hLib, "PlugInfo");
    fnz ("CICCIO BELLO", "BATUFFOLONE");
    }

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    4
    stai attento ai nomi ornati che il compilatore fa vebnire fuori!!!


    __imp__NOMEFUNZIONE@numeroDiBytePassatiInStack

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.