调用dll时编译时出现如下有关问题

调用dll时编译时出现如下问题
调用dll时编译时出现如下问题,不知问题出在那里
出现问题的都是我dll里的一些函数
DLLDload.obj : error LNK2001: unresolved external symbol "public: __thiscall CAppConfig::~CAppConfig(void)" (??1CAppConfig@@QAE@XZ)
DLLDload.obj : error LNK2001: unresolved external symbol "public: __thiscall CProject::CProject(void)" (??0CProject@@QAE@XZ)
DLLDload.obj : error LNK2001: unresolved external symbol "public: __thiscall CAppConfig::CAppConfig(void)" (??0CAppConfig@@QAE@XZ)
DLLDload.obj : error LNK2001: unresolved external symbol "public: __thiscall CProject::~CProject(void)" (??1CProject@@QAE@XZ)
DLLDload.obj : error LNK2001: unresolved external symbol "public: int __thiscall CAppConfig::MsgBatchCon(class std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> > &)" (?MsgBatchCon@CAppConf
ig@@QAEHAAV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@Z)
DLLDload.obj : error LNK2001: unresolved external symbol "public: class CString __thiscall CAppConfig::__GetCurPath(class CString)" (?__GetCurPath@CAppConfig@@QAE?AVCString@@V2@@Z)
DLLDload.obj : error LNK2001: unresolved external symbol "public: unsigned long __thiscall CRecipe::getRecipeTypeId(void)" (?getRecipeTypeId@CRecipe@@QAEKXZ)
DLLDload.obj : error LNK2001: unresolved external symbol "public: void __thiscall CWorkshop::getRecipeSettings(unsigned long &,unsigned long &,unsigned long &,unsigned long &)" (?getRecipeSettings@CWorkshop@@QAEXAAK000@Z)
DLLDload.obj : error LNK2001: unresolved external symbol "public: void __thiscall CWorkshop::getPLCSettings(unsigned long &,class CString &,class CString &,unsigned long &,unsigned long &,unsigned long &,unsigned long &,unsigned long &,unsigned long
 &)" (?getPLCSettings@CWorkshop@@QAEXAAKAAVCString@@1000000@Z)
DLLDload.obj : error LNK2001: unresolved external symbol "public: unsigned short const * __thiscall CRecipe::getWorkshop(void)" (?getWorkshop@CRecipe@@QAEPBGXZ)
DLLDload.obj : error LNK2001: unresolved external symbol "public: class CWorkshop * __thiscall CRecipeConfig::getWorkshop(unsigned long)" (?getWorkshop@CRecipeConfig@@QAEPAVCWorkshop@@K@Z)
DLLDload.obj : error LNK2001: unresolved external symbol "public: unsigned long __thiscall CRecipeConfig::getWorkshopCount(void)" (?getWorkshopCount@CRecipeConfig@@QAEKXZ)
DLLDload.obj : error LNK2001: unresolved external symbol "public: class CRecipeConfig & __thiscall CProject::getRecipeConfig(void)" (?getRecipeConfig@CProject@@QAEAAVCRecipeConfig@@XZ)
DLLDload.obj : error LNK2001: unresolved external symbol "public: class CRecipe * __thiscall CRecipeList::getRecipe(unsigned long)" (?getRecipe@CRecipeList@@QAEPAVCRecipe@@K@Z)
DLLDload.obj : error LNK2001: unresolved external symbol "public: unsigned long __thiscall CRecipeList::getRecipeCount(void)" (?getRecipeCount@CRecipeList@@QAEKXZ)
DLLDload.obj : error LNK2001: unresolved external symbol "public: class CRecipeList & __thiscall CProject::getRecipeList(void)" (?getRecipeList@CProject@@QAEAAVCRecipeList@@XZ)
msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16

------解决方案--------------------
申明跟实现都要用dllexport
------解决方案--------------------
你有连接相应的lib库吗
在stdafx.h中添加#pragma comment(lib, "XXX.lib")
xxx是你相应的lib库
------解决方案--------------------
通常的做法是将函数申明写到头文件中,以便将来提供给开发人员.但是导入跟导出是不一样的,因此我们常在头文件中这样写
#ifndef FUNC_PROTOTYPE
#define FUNC_PROTOTYPE extern "C" _declspec(dllexport)
#else
#define FUNC_PROTOTYPE extern "C" _declspec(dllimport)
#endif
这样,我们在实现文件中,不定义FUNC_PROTOTYPE,那么函数就被导出,在引用文件中,我们定义FUNC_PROTOTYPE,那么函数就被导入
------解决方案--------------------
咦?你的函数都是定义在了一个类里面的嘛? public: __thiscall CProject::CProject(void)等等?