2010-10-20 3 views

Répondre

2

Essayez une autre façon: appeler la fonction de dll en obtenant le pointeur avec GetProcAddress;

Exemple: C++ calling a dll

Mise à jour:

VLC media player téléchargé en version 7zip;

choisir l'option avec GetProcAddress:

#include <windows.h> 
#include <iostream> 


int main() 
{ 
    //VLC_PUBLIC_API const char * libvlc_get_version(void); 

    //Set directory path with libvlccore.dll and libvlc.dll 
    SetCurrentDirectory("C:/Program Files/VideoLAN/VLC"); 

    HINSTANCE hGetProcIDDLL = LoadLibrary("libvlc.dll"); 

    FARPROC lpfnGetProcessID = GetProcAddress(HMODULE(hGetProcIDDLL),"libvlc_get_version"); 

    if(lpfnGetProcessID == 0) 
    { 
     std::cout << "GetProcAddress failed"; 

     return 1; 
    } 

    typedef const char * (__stdcall * pICFUNC)(void); 

    pICFUNC MyFunction = pICFUNC(lpfnGetProcessID); 

    std::cout << MyFunction() << std::endl; 

    //output: 1.1.4 The Luggage 

    return 0; 
} 

Il fonctionne très bien pour moi, mais vous devez changer le jeu de caractères de défaut Unicode multi-octets: Projet -> Propriétés -> Général -> Jeu de caractères ;

Essayez-le! et bonne chance !;)

Mise à jour 2:

Je suis lib, voici la trace de cmd:

Microsoft Windows XP [Version 5.1.2600] (C) Copyright 1985 -2001 Microsoft Corp.

C: \ Program Files \ Microsoft Visual studio 9.0 \ VC \ bin> vcvars32.bat

C : \ Program Files \ Microsoft Visual Studio 9.0 \ VC \ bin> "C: \ Program Fichiers \ Microsoft Visual Studio 9.0 \ Common7 \ Tools \ vsvars32.bat" Environnement de définition pour l'utilisation Microsoft Visual Studio 2008 x86 outils.

C: \ Program Files \ Microsoft Visual Studio 9.0 \ VC \ bin> Dumpbin.exe/exports « D: \ My Téléchargements \ VLC \ vlc-1.1.4-win32 \ vlc-1.1.4 \ libvlc.dll »

"C: \ Documents and Settings \ Eugene \ Mes documents \ Visual studio 2008 \ Projects \ VLCApp \ VLCApp \ libvlc.def"

C: \ Program Files \ Microsoft Visual Studio 9.0 \ VC \ bin> lib /def: "C: \ Documents and S ettings \ Eugene \ Mes documents \ de Visual Studio de 2008 \ Projects \ VLCApp \ VLCApp \ libvlc.def "/ out:" C: \ Documents and Settings \ Eugene \ Mes Documents \ de Visual Studio 2008 \ projet s \ VLCApp \ VLCApp \ libvlc.lib " /machine: x86 Bibliothèque Microsoft (R) Version du gestionnaire 9.00.30729.01 Copyright (C) Microsoft Corporation. Tous droits réservés.

Création bibliothèque C: \ Documents and Settings \ Eugene \ Mes Documents \ de Visual Studio de 2008 \ Projects \ VLCApp \ VLCApp \ libvlc.lib et objet C: \ Documents and Settings \ Euge ne \ Mes documents \ visuelle studio 2008 \ Projects \ VLCApp \ VLCApp \ libvlc.exp

C: \ Program Files \ Microsoft Visual studio 9.0 \ VC \ bin>

+0

Merci pour la réponse, j'ai essayé cet exemple mais ça ne semblait pas k. – paj7777

+0

@ paj7777 Connaissez-vous les paramètres des fonctions d'exportation? Est-ce que cette DLL est votre propre bibliothèque ou un tiers?))) – Edward83

+0

J'ai les paramètres que j'ai les fichiers d'en-tête, la DLL fait partie de vlc, si vous suivez le lien que j'ai fourni qui vous amènera au wiki pour vlc. Merci pour l'aide. – paj7777

Questions connexes