在导致错误控制台应用程序的库中使用MFC
MFC used in library causing error console application
我正在尝试通过Visual c++使用任务计划。我用的是ctask。h(从这里)完成任务。然而,当我构建解决方案时(使用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;
}
我已经将"在共享DLL中使用MFC"设置为"在共享DLL中使用MFC"。
我没有看到任何迹象表明你实际上已经把CTask.cpp到你的项目。只包含头文件将导致您看到的链接器错误,您还需要.cpp。
您需要添加到您的项目CTask.cpp以及CTask.h。原来的项目http://www.codeproject.com/Articles/13089/Harnessing-the-task-scheduler可以编译没有任何麻烦-我刚刚检查了它!
相关文章:
- 在 1 个服务器 n 客户端套接字 C++ MFC 应用程序中更新数据的客户端
- 如何在 MFC 应用程序中启动 ZeroMQ 线程?
- 视窗 10 :笔(手写笔)在 MFC 应用程序上不起作用
- 从 MFC C++ 6.0 应用程序迁移到 VS 2005
- C++ - 从 MFC 应用程序启动记事本,并将其默认标题从 "Untitled - Notepad" 更改为其他内容
- 由于选项卡顺序的原因,鼠标光标总是得到错误的hwnd-MFC应用程序
- 使用参数 + stdout + stderr 从命令行调用 MFC 应用程序
- 在 MFC 应用程序中实现 IServiceProvider
- 将数组/对象/结构列表从C#库中传递给C MFC应用程序
- 无论如何,是否可以确定MFC应用程序是通过PC重新启动或用户单击应用程序快捷方式开始的
- 如何仅从另一个 MFC 应用程序打开 MFC 应用程序
- 如何将子窗口(MFC 应用程序)的工作区保存到图像
- 在MFC应用程序中缩放RDP ActiveX较大
- 如何创建一个新过程,而没有从管理模式运行的MFC应用程序中的管理特权
- 添加新对话框后,MFC 应用程序启动失败并"DLL Initialization Failed"
- 如何在Windows C MFC应用程序状态栏中禁用CAP NUM SCRL指示器
- MFC-基本MFC应用程序中的D3DCOLORVALUE
- Windows 32 位 mfc 应用程序的虚拟内存中的地址
- 发送消息WM_SETTEXT不适用于 MFC 应用程序的另一个应用程序
- 在 mfc 应用程序中显示数学符号