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