与非 MFC 控制台应用程序链接的 MFC C++ 静态库

MFC C++ static library linked with non MFC console app

我正在尝试编译一个控制台程序,该程序使用静态库实现 CString.The 控制台应用程序已使用 VS 向导创建: 具有预编译 headers、SDL 验证但没有 ATL 或 MFC 的 Win32 控制台应用程序。 静态库为MFC静态库(向导构造)

我的错误在哪里?

这是我长期尝试的方法:

我使用 MFC 控件创建了一个新的控制台应用程序 - 使用静态库可以很好地编译它。

然后我在必要时控制和修改了每个 link 选项,比较了 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;
};

费希尔 TestLib.cpp

#include "stdafx.h"
#include "TestLib.h"

TestLib::TestLib(const CString &tst)
    : _tst(tst)
{
}

TestLib::~TestLib(void)
{
}

费希尔 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;
}

这是解决方案,感谢 Jochen Arndt

只需要将 TestLib 声明更改为

TestLib::TestLib(LPCTSTR str)
    : _tst(str)
{
}