c++ - MFC 在库中使用导致错误控制台应用程序

标签 c++ visual-c++ scheduled-tasks

我正在尝试通过 Visual c++ 使用任务计划。我正在使用 Ctask.h(来自 here) 做任务。但是,当我构建解决方案(使用 Visual Studio 11)时,它说

fatal error C1189: #error :  Please use the /MD switch for _AFXDLL builds

当我切换到/MD 时,它给出了这个错误

ConsoleApplication12.obj : error LNK2019: unresolved external symbol "public: __thiscall CTask::CTask(void)" (??0CTask@@QAE@XZ) referenced in function _wmain
1>ConsoleApplication12.obj : error LNK2019: unresolved external symbol "public: void __thiscall CTask::SetStartDateTime(class ATL::CTime const &)" (?SetStartDateTime@CTask@@QAEXABVCTime@ATL@@@Z) referenced in function _wmain
1>ConsoleApplication12.obj : error LNK2019: unresolved external symbol "public: void __thiscall CTask::SetFrequency(enum CTask::ETaskFrequency)" (?SetFrequency@CTask@@QAEXW4ETaskFrequency@1@@Z) referenced in function _wmain
1>ConsoleApplication12.obj : error LNK2019: unresolved external symbol "public: void __thiscall CTask::SetProgram(wchar_t const *)" (?SetProgram@CTask@@QAEXPB_W@Z) referenced in function _wmain
1>ConsoleApplication12.obj : error LNK2019: unresolved external symbol "public: void __thiscall CTask::SetAccountName(wchar_t const *)" (?SetAccountName@CTask@@QAEXPB_W@Z) referenced in function _wmain
1>ConsoleApplication12.obj : error LNK2019: unresolved external symbol "public: long __thiscall CTask::SaveTask(wchar_t const *,int)const " (?SaveTask@CTask@@QBEJPB_WH@Z) referenced in function _wmain
1>ConsoleApplication12.obj : error LNK2019: unresolved external symbol "public: virtual __thiscall CTask::~CTask(void)" (??1CTask@@UAE@XZ) referenced in function _wmain

其他链接选项也是如此。这是我输入的代码:

#include "stdafx.h"
#include "CTask.h"
#include <iostream>
using namespace std;




int _tmain(int argc, _TCHAR* argv[])
{
    CTask task;
    CTime time(2013, 03, 15, 7, 11, 0);
    LPCTSTR sTaskName( L"Task Name" );

    BOOL replace = TRUE;

    task.SetProgram( L"E:\\aaa.txt" );
    task.SetAccountName( L"harshilsharma63" );
    task.SetStartDateTime( time );
    task.SetFrequency( CTask::freqOnce );

    if( S_OK == task.SaveTask( sTaskName, replace))
    {
        cout << "task successfully created!";
        return 0;
    }
    else
    {
        cout << "task creation failed!";
        return 1;
    }


    return 0;
}

我已经将“Use MFC in”设置为“Use MFC in shared DLL”。

最佳答案

我没有看到任何迹象表明您实际上已将 CTask.cpp 放入您的项目中。仅包含 header 会导致您看到链接器错误,您也需要 .cpp。

关于c++ - MFC 在库中使用导致错误控制台应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15436630/

相关文章:

java - 将自定义系统日期设置为计划程序

algorithm - 设计和构建具有大量重复任务的任务调度系统的好方法是什么?

java - Spring Scheduled fixedRate 无法正常工作

c++ - QMediaPlayer 和 QVideoWidget 的糟糕表现

c++ - 观看来自可执行文件的指令?

c++ - 将 libtomcrypt 和 libtommath 添加到我的 C++ 项目中

c++ - 如何使用循环清理此代码?

C++:C 字符串、指针和一个非常有趣的 while 循环

c++ - std::map::find 性能是否取决于 key 大小?

c++ - 无法使用 const char * 数组实例化模板