Linkerproblem
-
So hiho,
ich habe ein WinAPI-Projekt, dass nutzt "SQLConfigDataSource" aus der Headerdatei "ODBCINST.H". Nun brauche ich den Pfad der exe-Datei. Da der aktuelle Pfad ja nicht unbedingt der der exe sein muss, wollt ich über AfxGetApp() schauen ob das mehr bringt.
Dazu muss ich ja nun die MFC einbinden. Habe ich geamcht und die "Afxwin.h" eingefügt.
Nun kommt aber folgendes Problemerror LNK2001: Nichtaufgeloestes externes Symbol _SQLConfigDataSource@16
Ohne MFC gings aber einwandfrei. Was hat der???
-
Nimm mal statt AfxGetApp das hier:
char buf[256]; GetModuleFileName(NULL, buf, 255);
Das gibt den totalen Pfad zur Exe ohne MFC.
-
Erstmal danke das funzt zwar
, aber ich würd trotzdem gerne die MFC einbinden. Kann z.B. nicht mal CString verwenden.
Hat keiner ne Idee woran das liegt?
-
Keiner?
-
nur so als idee
findet er jetzt noch die ODBCINST.LIB und die entsprechende dll?
-
Eigentlich musst Du nur gaaaaanz oben
#include <afx.h>
einfügen...
und villeicht noch in den Projekteinstellungen bei "Use of MFC" das passende auswählen (also wenn Du gegen die DLL-Version der CRT linkst dann musst Du auch hier die DLL-Version auswählen)
-
Jochen Kalmbach schrieb:
Eigentlich musst Du nur gaaaaanz oben
#include <afx.h>
einfügen...
und villeicht noch in den Projekteinstellungen bei "Use of MFC" das passende auswählen (also wenn Du gegen die DLL-Version der CRT linkst dann musst Du auch hier die DLL-Version auswählen)hab ich doch gemacht, aber der Linker findet dann halt die ODBC-Lib anscheinend nicht mehr und ich weis echt nicht warum
edit: da steht das drinne laut MSDN: ODBCINST.LIB Wenn ich die extra bei zusätzliche Bibliotheken eintrage, findet der die nicht. Hab se auch so auf der Festplatte jetzt nicht gefunden.
Wenn ich keine MFC benutze, findet er sie aber. Was soll das???
-
Wer will denn diese odbcinst.lib haben???
Eigentlich muss nur gegen die "odbccp32.lib" gelinked werden...Verwendest Du was aus dem ODBCInst.h ?
-
Jochen Kalmbach schrieb:
Verwendest Du was aus dem ODBCInst.h ?
Na das SQLConfigDataSource benutze ich, was laut MSDN in dieser Headerdatei steht.
-
Und wer spezifiziert, dass die obdcinst.lib gelinkt werden soll???
-
MSDN schrieb:
The information below discusses the parameters that need to be passed to the ::SQLConfigDataSource ODBC API function. To use ::SQLConfigDataSource, you must include the ODBCINST.H header file and use the ODBCINST.LIB import library. Also, ODBCCP32.DLL must be in the path at run time (or ODBCINST.DLL for 16 bit)
.
-
Wo steht das genau in der MSDN? Dann sollten wir da mal einen Bug-Report hinsenden
Die LIB-Datei heisst nämlich so wie die DLL :p
-
Jochen Kalmbach schrieb:
Wo steht das genau in der MSDN? Dann sollten wir da mal einen Bug-Report hinsenden
Die LIB-Datei heisst nämlich so wie die DLL :pIs noch aus der MSDN zur 6er Enterprise, in der Online-Seite steht garnix zu Header-oder Bibliotheksdateien, auch nicht wirklich besser^^
Nun ne Idee wie ich das wegkriege? Ist zwar nicht esseniteill, weil habe mich zwangsweise jetzt mit std::string abgebenen, aber interessieren tuts mich jetzt schon
-
Finde zuerst mal raus, wer denn veranlasst, dass die odbcinst.lib gelinkt werden soll (Projekt-Settings / Include-files)...
-
und wenn du sie dann mitlinkst, die passende dll in den projektordner..
ich würde einfach mal per hand dazulinken... und umkopieren zum test
-
Jochen Kalmbach schrieb:
Finde zuerst mal raus, wer denn veranlasst, dass die odbcinst.lib gelinkt werden soll (Projekt-Settings / Include-files)...
ähm wie wo? Projket->Einstellungen, soweit ist klar, wo soll da "Inkludierte Dateien"(oder halt ähnlicher Wortlaut) sein?
-
elise schrieb:
und wenn du sie dann mitlinkst, die passende dll in den projektordner..
ich würde einfach mal per hand dazulinken... und umkopieren zum test
Die lib habe ich bisher noch nirgendwo gefunden. Windows darf grad im Hintergrund weitersuchen. Und ohne MFC muss ich die auch nicht als externe Bibliothek angeben, da findet der Linker alles was er brauch, also nimmt wohl doch ne andere Lib, keine ahnung ... .
-
Einfach mal in allen Dateien (auch im VS-Ordner) nach "obdcinst.lib" suche
-
Jochen Kalmbach schrieb:
Einfach mal in allen Dateien (auch im VS-Ordner) nach "obdcinst.lib" suche
die VS-Ordner habe ich schon durch, ebenso den Common den er noch auf c(bei mir heir) als extra Ornder hat, bisher nix ... naja bin mal am weiter suchen ...