|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
|
[C++] 2 domande
Avrei due domande sul C++:
[list=1][*]Come si carika na DLL esterna(con codice)????[*]Come si fa per sapere se un numero è pari o dispari(sempre con codice)????[/list=1] Grazie per ecentuali risposte Ciauz
__________________
Gnu/Linux User
|
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
Re: [C++] 2 domande
Quote:
2) Codice:
if(x%2 == 0)
//e' pari
else
//no
|
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Feb 2001
Città: Nordest
Messaggi: 217
|
Preso da MSDN:
The following example illustrates an important difference between run-time and load-time dynamic linking. If the MYPUTS.DLL file is not available, the application using load-time dynamic linking simply terminates. The run-time dynamic linking example, however, can respond to the error. Codice:
// File: RUNTIME.C
// A simple program that uses LoadLibrary and
// GetProcAddress to access myPuts from MYPUTS.DLL.
#include <stdio.h>
#include <windows.h>
typedef VOID (*MYPROC)(LPTSTR);
VOID main(VOID)
{
HINSTANCE hinstLib;
MYPROC ProcAdd;
BOOL fFreeResult, fRunTimeLinkSuccess = FALSE;
// Get a handle to the DLL module.
hinstLib = LoadLibrary("myputs");
// If the handle is valid, try to get the function address.
if (hinstLib != NULL)
{
ProcAdd = (MYPROC) GetProcAddress(hinstLib, "myPuts");
// If the function address is valid, call the function.
if (fRunTimeLinkSuccess = (ProcAdd != NULL))
(ProcAdd) ("message via DLL function\n");
// Free the DLL module.
fFreeResult = FreeLibrary(hinstLib);
}
// If unable to call the DLL function, use an alternative.
if (! fRunTimeLinkSuccess)
printf("message via alternative method\n");
}
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
|
sono niubbo, potresti spiegarmi meglio come funzia(nn essere troppo tecnico pero
Ciauz
__________________
Gnu/Linux User
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
|
Re: Re: [C++] 2 domande
Quote:
Ciauz
__________________
Gnu/Linux User
|
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Feb 2001
Città: Nordest
Messaggi: 217
|
In sostanza la procedura riportata funziona così: con
hinstLib = LoadLibrary("nomedll.dll"); crei una instanza in memoria della DLL (nell'esempio "MYPUTS.DLL") Se l'handle ricevuto è valido (!=NULL) allora puoi determinare l'indirizzo della funzione che hai esportato nella DLL, usando la funzione GetProcAddress (nell'esempio si determina l'indirizzo di myPuts). Se è tutto ok, puoi chiamare la funzione, in questo modo: (ProcAdd) (parametri); Bisogna ricordarsi, finito di usare la DLL, di eliminare il riferimento ad essa e liberare la memoria, così: fFreeResult = FreeLibrary(hinstLib); |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
|
tnk.
E un .lib cosa è, come lo si richiama e cosa deve contenere?????? Ciauz
__________________
Gnu/Linux User
|
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
Re: Re: Re: [C++] 2 domande
Quote:
non ho mai scritto una riga di C++ sotto win. su solaris c'e' un meccanismo per caricare librerie C a runtime: le funzioni dlopen, dlsym, dlerror e dlclose forniscono accesso al linker ld, ma non le ho mai utilizzate. Se sei interessato manda un pvt a ilsensine, lui dovrebbe conoscerle bene. |
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
|
allora tu usi i .h ?????
P.S: E un .lib cosa è, come lo si richiama e cosa deve contenere?????? Ciauz
__________________
Gnu/Linux User
|
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: Dec 1999
Messaggi: 139
|
Re: [C++] 2 domande
Quote:
Codice:
if (x&1) //dispari else //pari |
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Feb 2001
Città: Nordest
Messaggi: 217
|
I file .LIB sono librerie, che vengono indicate preventivamente al compilatore e vengono incluse nel tuo progetto. Sono accoppiati ad un file header (.H) che ne definisce i prototipi delle funzioni esposte.
Dirti di più è difficile, dipende dal tuo ambiente di sviluppo! |
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
|
allora uso Dev C++ 4 su Windows ME
Ciauz
__________________
Gnu/Linux User
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:45.



















