Fehler LNK2019 bei Verwendung von GetFileVersionInfoSize ()
Ich nur eingebaut, dieses etwas in meinem schon funktionierenden code, aber ich bin immer ein LNK2019 Fehler. Ich werde fügen Sie den Fehler nach dem einfügen des Codes.
Die Klasse CAboutDlg hat:
public:
CStatic m_VersionInfoCtrl;
virtual BOOL OnInitDialog();
};
Selbst die Funktion:
BOOL CAboutDlg::OnInitDialog()
{
CDialog::OnInitDialog();
CString inFileName = AfxGetApp()->m_pszExeName;
inFileName += ".exe";
void * theVersionInfo;
void * theFixedInfo;
unsigned long aVersionInfoSize = GetFileVersionInfoSize ( inFileName , &aVersionInfoSize);
CString returnString;
if (aVersionInfoSize)
{
theVersionInfo = new char [aVersionInfoSize];
GetFileVersionInfo ( inFileName, 0 , aVersionInfoSize, theVersionInfo) ;
unsigned int aSize = 0;
VerQueryValue( theVersionInfo , "\\" , &theFixedInfo , &aSize);
if (theFixedInfo)
{
VS_FIXEDFILEINFO * aInfo = (VS_FIXEDFILEINFO *) theFixedInfo;
DWORD dwMajorVersionMsb = HIWORD( aInfo->dwFileVersionMS );
DWORD dwMajorVersionLsb = LOWORD( aInfo->dwFileVersionMS );
DWORD dwMinorVersionMsb = HIWORD( aInfo->dwFileVersionLS );
DWORD dwMinorVersionLsb = LOWORD( aInfo->dwFileVersionLS );
returnString.Format("Version %d . %d . %d. %d",dwMajorVersionMsb,dwMajorVersionLsb,dwMinorVersionMsb,dwMinorVersionLsb);
//memcpy(sVer,returnString.GetBuffer(),returnString.GetLength()+1);
}
delete theVersionInfo;
}
m_VersionInfoCtrl.SetWindowText(returnString);
return TRUE; //return TRUE unless you set the focus to a control
//EXCEPTION: OCX Property Pages should return FALSE
}
....
Ihre mir die folgenden drei Fehler:
1.RangemasterGenerator error LNK2019: unresolved external symbol _VerQueryValueA@16 referenced in function "public: virtual int __thiscall CAboutDlg::OnInitDialog(void)" (?OnInitDialog@CAboutDlg@@UAEHXZ)
2.RangemasterGenerator error LNK2019: unresolved external symbol _GetFileVersionInfoA@16 referenced in function "public: virtual int __thiscall CAboutDlg::OnInitDialog(void)" (?OnInitDialog@CAboutDlg@@UAEHXZ)
3.RangemasterGenerator error LNK2019: unresolved external symbol _GetFileVersionInfoSizeA@8 referenced in function "public: virtual int __thiscall CAboutDlg::OnInitDialog(void)" (?OnInitDialog@CAboutDlg@@UAEHXZ)
...
Ich bin nicht in der Lage zu verstehen, was das problem ist. Jemand kann bitte helfen.
Danke.
InformationsquelleAutor der Frage Neophile | 2011-08-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie diese Verbindung vor der Bibliothek, enthält die beiden Funktionen
VerQueryValue
undGetFileVersionInfo
- der linker nicht weiß, standardmäßig, wo Sie zu finden sind.Eine schnelle Suche für die zwei Funktionen auf der MSDN-Website deutet darauf hin, dass Sie sowohl in der system-Bibliothek version.dll und die Bibliothek, die Sie verknüpfen möchten gegen die is-version.lib. Nur hinzufügen, dass die Liste Bibliothek in den linker-Eigenschaften.
InformationsquelleAutor der Antwort Timo Geusch
Funktionen GetFileVersionInfo und GetFileVersionInfoSize sind definiert in
Version.dll
undVersion.lib
so stellen Sie sicher, Sie werden gefallen an den entsprechenden Bibliotheken.InformationsquelleAutor der Antwort Alok Save
Ich bin auch immer die gleichen Fehler, die während der Aktualisierung des VS6.0 Anwendung auf VS2012-Plattform.
ein. Fehler LNK2019: nicht aufgelöstes externes symbol _GetFileVersionInfoSizeA@8 referenced in function _main
b. Fehler LNK2019: nicht aufgelöstes externes symbol _GetFileVersionInfoA@16 referenced in function _main
c. Fehler LNK2019: nicht aufgelöstes externes symbol _VerQueryValueA@16 referenced in function _main
Auflösung:
Fand ich, dass es aufgrund von fehlenden Verweis auf die Bibliothek " - Version.lib".
ein. Für VS6.0 hinzufügen Projekt-Einstellung->Verknüpfung->Bibliothek-Module
b. Für VS2012 hinzufügen Projekt-Eigenschaften->Linker->Eingang->Zusätzliche Abhängigkeiten
und fügen Sie die vollständige lib-Pfad zum Include-Verzeichnis.
InformationsquelleAutor der Antwort Mahendra
Für VS2012 und 2013 zum Projekt hinzufügen Eigenschaften->Linker->Eingang->Zusätzliche Abhängigkeiten -> Hinzufügen-Version.lib
InformationsquelleAutor der Antwort AirCal86