1):emule所连结的几个lib 库的源代码中都没有导出类的声明,这样做可以吗?,
2):在emule引用lib库的大部分时候代码没有出错,有些有默认参数的类函数连接出错如:
void EnableSaveRestore(LPCTSTR pszSection, BOOL bRectOnly = FALSE );
AddSourceDlg.obj : error LNK2001: unresolved external symbol "public: void __thiscall CResizableDialog::EnableSaveRestore(unsigned short const *)" (?EnableSaveRestore@CResizableDialog@@QAEXPBG@Z)
12 个解决方案
#1
1.可以
2.查看EnableSaveRestore的实现部分有没有,就是在AddSourceDlg.cpp中有没有
void CResizableDialog::EnableSaveRestore(LPCTSTR pszSection, BOOL bRectOnly)
{
...
}
如果有删除debug和release目录下面的文件重新编译,如果没有...自己加上
2.查看EnableSaveRestore的实现部分有没有,就是在AddSourceDlg.cpp中有没有
void CResizableDialog::EnableSaveRestore(LPCTSTR pszSection, BOOL bRectOnly)
{
...
}
如果有删除debug和release目录下面的文件重新编译,如果没有...自己加上
#2
谢谢楼上,照这样做了,还是不行。
另外
void CResizableDialog::EnableSaveRestore(LPCTSTR pszSection, BOOL bRectOnly)
{
...
}
这个类成员函数是封装在ResizableLib.lib中。ResizableLib.lib是emule所联接的几个lib中的一个。
另外
void CResizableDialog::EnableSaveRestore(LPCTSTR pszSection, BOOL bRectOnly)
{
...
}
这个类成员函数是封装在ResizableLib.lib中。ResizableLib.lib是emule所联接的几个lib中的一个。
#3
AddSourceDlg.cpp是emule工程中的一个文件。
#4
你给的声明:void EnableSaveRestore(LPCTSTR pszSection, BOOL bRectOnly = FALSE );
实现:void __thiscall CResizableDialog::EnableSaveRestore(unsigned short const *)
不一样啊
实现:void __thiscall CResizableDialog::EnableSaveRestore(unsigned short const *)
不一样啊
#5
------ Build started: Project: emule, Configuration: Release Win32 ------
Linking...
Creating library .\release\emule.lib and object .\release\emule.exp
AddSourceDlg.obj : error LNK2001: unresolved external symbol "public: void __thiscall CResizableDialog::EnableSaveRestore(unsigned short const *)" (?EnableSaveRestore@CResizableDialog@@QAEXPBG@Z)
ClientDetailDialog.obj : error LNK2001: unresolved external symbol "public: void __thiscall CResizableSheet::EnableSaveRestore(unsigned short const *)" (?EnableSaveRestore@CResizableSheet@@QAEXPBG@Z)
DialogMinTrayBtn.obj : error LNK2001: unresolved external symbol "public: __thiscall CResizableDialog::CResizableDialog(unsigned short const *,class CWnd *)" (??0CResizableDialog@@QAE@PBGPAVCWnd@@@Z)
ListViewWalkerPropertySheet.obj : error LNK2001: unresolved external symbol "public: __thiscall CResizableSheet::CResizableSheet(unsigned short const *,class CWnd *,unsigned int)" (??0CResizableSheet@@QAE@PBGPAVCWnd@@I@Z)
png.lib(pngrutil.obj) : error LNK2001: unresolved external symbol __imp__strtod
.\release\emule.exe : fatal error LNK1120: 5 unresolved externals
Build log was saved at "file://c:\Documents and Settings\Administrator\桌面\emule\emule\srchybrid\release\BuildLog.htm"
emule - 6 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
emule 工程中AddsourceDlg.cpp中有一句对EnableSaveRestore的使用。
EnableSaveRestore(_T("AddSourceDlg"));
Linking...
Creating library .\release\emule.lib and object .\release\emule.exp
AddSourceDlg.obj : error LNK2001: unresolved external symbol "public: void __thiscall CResizableDialog::EnableSaveRestore(unsigned short const *)" (?EnableSaveRestore@CResizableDialog@@QAEXPBG@Z)
ClientDetailDialog.obj : error LNK2001: unresolved external symbol "public: void __thiscall CResizableSheet::EnableSaveRestore(unsigned short const *)" (?EnableSaveRestore@CResizableSheet@@QAEXPBG@Z)
DialogMinTrayBtn.obj : error LNK2001: unresolved external symbol "public: __thiscall CResizableDialog::CResizableDialog(unsigned short const *,class CWnd *)" (??0CResizableDialog@@QAE@PBGPAVCWnd@@@Z)
ListViewWalkerPropertySheet.obj : error LNK2001: unresolved external symbol "public: __thiscall CResizableSheet::CResizableSheet(unsigned short const *,class CWnd *,unsigned int)" (??0CResizableSheet@@QAE@PBGPAVCWnd@@I@Z)
png.lib(pngrutil.obj) : error LNK2001: unresolved external symbol __imp__strtod
.\release\emule.exe : fatal error LNK1120: 5 unresolved externals
Build log was saved at "file://c:\Documents and Settings\Administrator\桌面\emule\emule\srchybrid\release\BuildLog.htm"
emule - 6 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
emule 工程中AddsourceDlg.cpp中有一句对EnableSaveRestore的使用。
EnableSaveRestore(_T("AddSourceDlg"));
#6
ResizableLib.lib中EnableSaveRestore的实现
void CResizableDialog::EnableSaveRestore(LPCTSTR pszSection, BOOL bRectOnly)
{
m_sSection = pszSection;
m_bEnableSaveRestore = TRUE;
m_bRectOnly = bRectOnly;
// restore immediately
LoadWindowRect(pszSection, bRectOnly);
}
void CResizableDialog::EnableSaveRestore(LPCTSTR pszSection, BOOL bRectOnly)
{
m_sSection = pszSection;
m_bEnableSaveRestore = TRUE;
m_bRectOnly = bRectOnly;
// restore immediately
LoadWindowRect(pszSection, bRectOnly);
}
#7
方面把程序给我看看吧,这样看不出来 EnochShen@QQ.com
#8
http://blog.csdn.net/loleeve/
这是编译的帮助。
我是在vc2005下编译的。会不会有什么特殊的地方?
这是编译的帮助。
我是在vc2005下编译的。会不会有什么特殊的地方?
#9
1.几个project设置都是Unicode吗?
2.几个project都是用vc2005编译的吗?
2.几个project都是用vc2005编译的吗?
#10
to: Cline(营营)
1.是用unicode
2.都是用vc2005编译的
1.是用unicode
2.都是用vc2005编译的
#11
1.可以
2.VC菜单->project->Add to project->Files将.lib文件加入到工程中(注意:如果.lib有静态版本和动态版本的时候,所加入的.lib一定要与工程的编译方式一定,例如:如果编译Release程序的话,最好使用静态版本的.lib文件)
试一试,希望对你有所帮助!
2.VC菜单->project->Add to project->Files将.lib文件加入到工程中(注意:如果.lib有静态版本和动态版本的时候,所加入的.lib一定要与工程的编译方式一定,例如:如果编译Release程序的话,最好使用静态版本的.lib文件)
试一试,希望对你有所帮助!
#12
谢谢楼上几位的帮助,以上的方法我都是了,我感觉可能版本不对的原因。
最后我把vc2005卸掉,改装vc2003了,编译通过了,实在耽误不起时间。
最后还是问一下第一个问题:这种不要在头文件中导出类的声明是不是只能静态连接?网上有没有介绍这种方法的文档?
最后我把vc2005卸掉,改装vc2003了,编译通过了,实在耽误不起时间。
最后还是问一下第一个问题:这种不要在头文件中导出类的声明是不是只能静态连接?网上有没有介绍这种方法的文档?
#1
1.可以
2.查看EnableSaveRestore的实现部分有没有,就是在AddSourceDlg.cpp中有没有
void CResizableDialog::EnableSaveRestore(LPCTSTR pszSection, BOOL bRectOnly)
{
...
}
如果有删除debug和release目录下面的文件重新编译,如果没有...自己加上
2.查看EnableSaveRestore的实现部分有没有,就是在AddSourceDlg.cpp中有没有
void CResizableDialog::EnableSaveRestore(LPCTSTR pszSection, BOOL bRectOnly)
{
...
}
如果有删除debug和release目录下面的文件重新编译,如果没有...自己加上
#2
谢谢楼上,照这样做了,还是不行。
另外
void CResizableDialog::EnableSaveRestore(LPCTSTR pszSection, BOOL bRectOnly)
{
...
}
这个类成员函数是封装在ResizableLib.lib中。ResizableLib.lib是emule所联接的几个lib中的一个。
另外
void CResizableDialog::EnableSaveRestore(LPCTSTR pszSection, BOOL bRectOnly)
{
...
}
这个类成员函数是封装在ResizableLib.lib中。ResizableLib.lib是emule所联接的几个lib中的一个。
#3
AddSourceDlg.cpp是emule工程中的一个文件。
#4
你给的声明:void EnableSaveRestore(LPCTSTR pszSection, BOOL bRectOnly = FALSE );
实现:void __thiscall CResizableDialog::EnableSaveRestore(unsigned short const *)
不一样啊
实现:void __thiscall CResizableDialog::EnableSaveRestore(unsigned short const *)
不一样啊
#5
------ Build started: Project: emule, Configuration: Release Win32 ------
Linking...
Creating library .\release\emule.lib and object .\release\emule.exp
AddSourceDlg.obj : error LNK2001: unresolved external symbol "public: void __thiscall CResizableDialog::EnableSaveRestore(unsigned short const *)" (?EnableSaveRestore@CResizableDialog@@QAEXPBG@Z)
ClientDetailDialog.obj : error LNK2001: unresolved external symbol "public: void __thiscall CResizableSheet::EnableSaveRestore(unsigned short const *)" (?EnableSaveRestore@CResizableSheet@@QAEXPBG@Z)
DialogMinTrayBtn.obj : error LNK2001: unresolved external symbol "public: __thiscall CResizableDialog::CResizableDialog(unsigned short const *,class CWnd *)" (??0CResizableDialog@@QAE@PBGPAVCWnd@@@Z)
ListViewWalkerPropertySheet.obj : error LNK2001: unresolved external symbol "public: __thiscall CResizableSheet::CResizableSheet(unsigned short const *,class CWnd *,unsigned int)" (??0CResizableSheet@@QAE@PBGPAVCWnd@@I@Z)
png.lib(pngrutil.obj) : error LNK2001: unresolved external symbol __imp__strtod
.\release\emule.exe : fatal error LNK1120: 5 unresolved externals
Build log was saved at "file://c:\Documents and Settings\Administrator\桌面\emule\emule\srchybrid\release\BuildLog.htm"
emule - 6 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
emule 工程中AddsourceDlg.cpp中有一句对EnableSaveRestore的使用。
EnableSaveRestore(_T("AddSourceDlg"));
Linking...
Creating library .\release\emule.lib and object .\release\emule.exp
AddSourceDlg.obj : error LNK2001: unresolved external symbol "public: void __thiscall CResizableDialog::EnableSaveRestore(unsigned short const *)" (?EnableSaveRestore@CResizableDialog@@QAEXPBG@Z)
ClientDetailDialog.obj : error LNK2001: unresolved external symbol "public: void __thiscall CResizableSheet::EnableSaveRestore(unsigned short const *)" (?EnableSaveRestore@CResizableSheet@@QAEXPBG@Z)
DialogMinTrayBtn.obj : error LNK2001: unresolved external symbol "public: __thiscall CResizableDialog::CResizableDialog(unsigned short const *,class CWnd *)" (??0CResizableDialog@@QAE@PBGPAVCWnd@@@Z)
ListViewWalkerPropertySheet.obj : error LNK2001: unresolved external symbol "public: __thiscall CResizableSheet::CResizableSheet(unsigned short const *,class CWnd *,unsigned int)" (??0CResizableSheet@@QAE@PBGPAVCWnd@@I@Z)
png.lib(pngrutil.obj) : error LNK2001: unresolved external symbol __imp__strtod
.\release\emule.exe : fatal error LNK1120: 5 unresolved externals
Build log was saved at "file://c:\Documents and Settings\Administrator\桌面\emule\emule\srchybrid\release\BuildLog.htm"
emule - 6 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
emule 工程中AddsourceDlg.cpp中有一句对EnableSaveRestore的使用。
EnableSaveRestore(_T("AddSourceDlg"));
#6
ResizableLib.lib中EnableSaveRestore的实现
void CResizableDialog::EnableSaveRestore(LPCTSTR pszSection, BOOL bRectOnly)
{
m_sSection = pszSection;
m_bEnableSaveRestore = TRUE;
m_bRectOnly = bRectOnly;
// restore immediately
LoadWindowRect(pszSection, bRectOnly);
}
void CResizableDialog::EnableSaveRestore(LPCTSTR pszSection, BOOL bRectOnly)
{
m_sSection = pszSection;
m_bEnableSaveRestore = TRUE;
m_bRectOnly = bRectOnly;
// restore immediately
LoadWindowRect(pszSection, bRectOnly);
}
#7
方面把程序给我看看吧,这样看不出来 EnochShen@QQ.com
#8
http://blog.csdn.net/loleeve/
这是编译的帮助。
我是在vc2005下编译的。会不会有什么特殊的地方?
这是编译的帮助。
我是在vc2005下编译的。会不会有什么特殊的地方?
#9
1.几个project设置都是Unicode吗?
2.几个project都是用vc2005编译的吗?
2.几个project都是用vc2005编译的吗?
#10
to: Cline(营营)
1.是用unicode
2.都是用vc2005编译的
1.是用unicode
2.都是用vc2005编译的
#11
1.可以
2.VC菜单->project->Add to project->Files将.lib文件加入到工程中(注意:如果.lib有静态版本和动态版本的时候,所加入的.lib一定要与工程的编译方式一定,例如:如果编译Release程序的话,最好使用静态版本的.lib文件)
试一试,希望对你有所帮助!
2.VC菜单->project->Add to project->Files将.lib文件加入到工程中(注意:如果.lib有静态版本和动态版本的时候,所加入的.lib一定要与工程的编译方式一定,例如:如果编译Release程序的话,最好使用静态版本的.lib文件)
试一试,希望对你有所帮助!
#12
谢谢楼上几位的帮助,以上的方法我都是了,我感觉可能版本不对的原因。
最后我把vc2005卸掉,改装vc2003了,编译通过了,实在耽误不起时间。
最后还是问一下第一个问题:这种不要在头文件中导出类的声明是不是只能静态连接?网上有没有介绍这种方法的文档?
最后我把vc2005卸掉,改装vc2003了,编译通过了,实在耽误不起时间。
最后还是问一下第一个问题:这种不要在头文件中导出类的声明是不是只能静态连接?网上有没有介绍这种方法的文档?