关于dll和lib的有关问题,用过wxwidgets或者对链接比较熟悉的帮忙下

关于dll和lib的问题,用过wxwidgets或者对链接比较熟悉的帮忙下
我现在在做个界面,用wxwidgets的,UI因为这个可能后面会移植到其他的软件,所以做成了dll,我用VS,UI放一个项目,测试的主程序放一个项目,如果我将UI编译成dll的话,是不会错的,但是编译成lib就会有这种警告:

warning LNK4217: 本地定义的符号 ??0jmuShipControlPanel@@QAE@PAVwxWindow@@HABVwxPoint@@ABVwxSize@@JABVwxString@@@Z (public: __thiscall jmuShipControlPanel::jmuShipControlPanel(class wxWindow *,int,class wxPoint const &,class wxSize const &,long,class wxString const &)) 在函数 "private: void __thiscall MyFrame::CreateControl(void)" (?CreateControl@MyFrame@@AAEXXZ) 中导入
2>MyFrame.obj : warning LNK4217: 本地定义的符号 ??1jmuShipControlPanel@@UAE@XZ (public: virtual __thiscall jmuShipControlPanel::~jmuShipControlPanel(void)) 在函数 "public: virtual void * __thiscall jmuShipControlPanel::`scalar deleting destructor'(unsigned int)" (??_GjmuShipControlPanel@@UAEPAXI@Z) 中导入

jmuShipControlPanel是我写的软件UI,这两个一个是那个UI的构造函数一个是析构函数

MyFrame则是测试的程序

这个警告是什么意思??


这个并不能阻止程序编译成功,但是现在我想把这个程序拷到别人的电脑,别人的电脑上并没有wxwidgets的动态库,所以想把程序编译成静态,于是我把一些宏去掉后,编译警告是这样的::

UI项目的警告:
1>e:\lin\wx app\shipcontrolpanels\shipcontrolpanels\jmutugthrusterui.h(6) : warning C4275: 非 dll 接口 class“wxPanel”用作 dll 接口 class“jmuTugThrusterPanel”的基
1> e:\wxwidgets-2.8.12\include\wx\generic\panelg.h(30) : 参见“wxPanel”的声明
1> e:\lin\wx app\shipcontrolpanels\shipcontrolpanels\jmutugthrusterui.h(5) : 参见“jmuTugThrusterPanel”的声明

1>e:\lin\wx app\shipcontrolpanels\shipcontrolpanels\jmustreeingsystemui.h(39) : warning C4251: “jmuStreeingSystem::sm_eventTableEntries”: struct“wxEventTableEntry”需要有 dll 接口由 class“jmuStreeingSystem”的客户端使用 
1> e:\wxwidgets-2.8.12\include\wx\event.h(2265) : 参见“wxEventTableEntry”的声明

基本都是4275和4251的警告

至于主程序

2>MyFrame.obj : warning LNK4217: 本地定义的符号 ??0jmuShipControlPanel@@QAE@PAVwxWindow@@HABVwxPoint@@ABVwxSize@@JABVwxString@@@Z (public: __thiscall jmuShipControlPanel::jmuShipControlPanel(class wxWindow *,int,class wxPoint const &,class wxSize const &,long,class wxString const &)) 在函数 "private: void __thiscall MyFrame::CreateControl(void)" (?CreateControl@MyFrame@@AAEXXZ) 中导入
2>MyFrame.obj : warning LNK4217: 本地定义的符号 ??1jmuShipControlPanel@@UAE@XZ (public: virtual __thiscall jmuShipControlPanel::~jmuShipControlPanel(void)) 在函数 "public: virtual void * __thiscall jmuShipControlPanel::`scalar deleting destructor'(unsigned int)" (??_GjmuShipControlPanel@@UAEPAXI@Z) 中导入
2>正在嵌入清单...

请问这个是什么问题??能给我讲下原理或者有讲这方面的书吗?

------解决方案--------------------
你已有代码是不是有调用DLL的部分?
------解决方案--------------------
都是warning啊。如果不是Error的话,试一试OK不?
------解决方案--------------------
你有静态库吗
------解决方案--------------------
注意一下编译选项?
MT?MTD?