0
我試圖編譯一個控制檯程序,它使用實現CString的靜態庫。控制檯應用程序已經使用VS嚮導創建: Win32控制檯應用程序具有預編譯頭文件, SDL驗證,但不包含ATL或MFC。 靜態庫是一個MFC靜態庫(嚮導構造)。MFC C++靜態庫與非MFC控制檯鏈接應用程序
哪裏是我的錯誤?
這是我這麼久曾嘗試:
我創建使用MFC控制新的控制檯應用程序 - 這編譯靜態庫的罰款。
然後我在必要時控制和修改了每個鏈接選項,比較了2個控制檯項目。 但第一個控制檯應用程序不能編譯。 我被困住了! 我與Visual Studio 2012在Windows 10
在這裏工作是代碼: 文件TestLib.h
#pragma once
#include <atlstr.h>
class TestLib
{
public:
TestLib(){};
TestLib(const CString &tst);
virtual ~TestLib(void);
private:
CString _tst;
};
Fichier TestLib.cpp
#include "stdafx.h"
#include "TestLib.h"
TestLib::TestLib(const CString &tst)
: _tst(tst)
{
}
TestLib::~TestLib(void)
{
}
Fichier ConsoleTest2.cpp
// ConsoleTest2.cpp : définit le point d'entrée pour l'application console.
#include "stdafx.h"
#include "TestLib.h"
int _tmain(int argc, _TCHAR* argv[])
{
TestLib *tst = new TestLib(); // This compile fine !
//TestLib *tst = new TestLib(_T("Test")); // This generates LNK2019 link error
return 0;
}
你在stdafx.h中包含哪些文件?使用MFC時使用ATL頭是不夠的。你必須包含afx.h!否則,可以自由使用ATL(CString也是ATL的一部分) – xMRi
stdafx.h文件包含targetver.h,stdio.h和tchar.h ...我只使用了項目嚮導生成器獲取標準文件,然後添加Lib類。 – BartmanDilaw