Link on librerie NON di sistema

martedì 14 febbraio 2006 - 09.42

bujia Profilo | Newbie

Buongiorno!
Utilizzo Visual C++ .NET 2003.
Devo compilare un'applicazione in cui devo effettuare il link con una libreria statica ".lib" che praticamente replica le funzioni ODBC. In questo caso però non voglio linkare la libreria di microsft ODBC, altrimenti vengono provilegiate e l'applicazione non utilizza le mie.
Qual'è la libreria che devo togliere dal linking?
Come si fa? Nel senso...come si fa a modificare la riga di comando del linker nella pagina delle proprietà del progetto Visual Studio 2003?
Voglio creare un'applicazione client per un database ma che usi le mie funzioni, linkate staticamente in una libreria, che non sia legata dinamicamente a quelle ODBC di Microsoft.
Spero che qualcuno possa darmi una mano.
Grazie Mille!

Brainkiller Profilo | Guru

>Voglio creare un'applicazione client per un database ma che usi
>le mie funzioni, linkate staticamente in una libreria, che non
> sia legata dinamicamente a quelle ODBC di Microsoft.
>Spero che qualcuno possa darmi una mano.
>Grazie Mille!

Ciao,
ma le tue funzioni della tua libreria che funzione svolgono ? La connessione ad un database via ODBC ? Quando fai un compilato puoi passargli tutte le .lib che vuoi ma se all'interno del tuo codice non ne fai uso non succede niente. Per caso hai utilizzato gli stessi nomi delle librerie ODBC Microsoft ?

CIao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

bujia Profilo | Newbie

Certo che ho usato gli stessi nomi, le mie funzioni fanno cose analoghe a quelle Microsoft.
Si chiamo SQLAllocConnect , SQLConnect, SQLDisconnect ecc...
Però voglio usare le mie e non quelle di Microsoft, quale libreria NON devo includere perchè utilizzi le mie?
Grazie dell'aiuto.

Alessandro

Brainkiller Profilo | Guru

>Certo che ho usato gli stessi nomi, le mie funzioni fanno cose
>analoghe a quelle Microsoft.
>Si chiamo SQLAllocConnect , SQLConnect, SQLDisconnect ecc...
>Però voglio usare le mie e non quelle di Microsoft, quale libreria
> NON devo includere perchè utilizzi le mie?
>Grazie dell'aiuto.

Il problema non dovrebbe neanche porsi perchè se tu utilizzi i tuoi header files invece che quelli di Microsoft (<sql.h> e
<sqlext.h>) il progetto viene compilato utilizzando il tuo codice e non quello esterno. Gli include files servono appunto per rendere visibili al compilatore funzioni contenute altrove (.lib files e altro).

In ogni caso ti consiglio un metodo, vai sulle proprietà del linker, elimina tutta la lista di file .lib che trovi e riparti inserendo solo quelli effettivamente necessari.

Quello dell'ODBC cmq. dovrebbe essere odbc.lib
ciao



David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

bujia Profilo | Newbie

Io includo quelli di Microsoft perchè le definizioni e i prototipi delle funzioni sono esattamente uguali, così come i tipi delle variabili.

Volevo provare ad eliminare odbc32.lib dalla riga di comando del Linker ma a me sembra che non ci sia modo di farlo.

Nella pagina delle proprietà alla voce RigaDiComando mi trovo il tutto scritto in "grigetto" senza possibilità di editing, mentre sotto c'è una sezione con scritto OpzioniAggiuntive in cui posso aggiungere delle cose, ma non cancellare quelle già esistente.

Esiste un modo che mi sfugge?

Sto usando Visual C++ .NET 2003.

Grazie dell'aiuto.

Alessandro

Brainkiller Profilo | Guru

>Esiste un modo che mi sfugge?
>
>Sto usando Visual C++ .NET 2003.

Certo,
vai nelle proprietà del progetto da Project->Project Properties.

Poi vai dentro:

Configuration Properties-> Linker -> Input

entra nella prima voce "Additional Dependencies".

Sulla destra compare il pulsante con i 3 puntini [...]

Premilo e disabiltia la voce "inherit from project defaults".

Dai Ok, vedrai che spariranno tutte le dipendenze .lib compresa odbc32.lib
ciao


David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5