VS2015 編譯 LinkCreator0.7_Src 筆記
- 1.介紹
- 2.修改項目生成可執行程式
-
- 2.1.下載下傳源代碼
- 2.2.修改項目配置
- 2.3.修改代碼,解決編譯時提示版本錯誤的問題
- 2.4.修改代碼,解決運作時錯誤的問題
- 3.附一個校驗結果
1.介紹
eMule常用連結形如 “ed2k://|file|filename.iso|filesize|filehash|”,是一種比較常用的下載下傳協定。Download Link Creator可以對下載下傳下來的檔案進行校驗或生成相應的連結。
2.修改項目生成可執行程式
2.1.下載下傳源代碼
2.1.1.打開 eMule-Project.net 頁面。
2.1.2.找到 Download Link Creator Sources 下載下傳到本地并解壓出來。
2.1.3.打開 “LinkCreator0.7_Src\src\LinkCreator.sln” 檔案,會提示更新解決方案,等待解決方案更新完成。
2.2.修改項目配置
在 ”項目屬性“ --> ”連結器“ --> ”指令行" --> “附件選項” 中粘貼 “/SAFESEH:NO” 并儲存,以解決提示 “error LNK2026: 子產品對于 SAFESEH 映像是不安全的” 的問題。
2.3.修改代碼,解決編譯時提示版本錯誤的問題
在項目中搜尋 “WINVER” 将下面幾處的 “0x0400” 全部更改為 “0x0501”,以解決提示 “C1189 #error: MFC does not support WINVER less than 0x0501” 的問題。
最後一個 “** _WIN32_IE**” 也要修改,不然會提示 “error C2065: “CCM_SETWINDOWTHEME”: 未聲明的辨別符”。
#ifndef WINVER
#define WINVER 0x0501
#ifndef _WIN32_WINNT
#define _WIN32_WINNT 0x0501
#endif
#ifndef _WIN32_WINDOWS
#define _WIN32_WINDOWS 0x0501
#endif
#ifndef _WIN32_IE
#define _WIN32_IE 0x0501
#endif
2.4.修改代碼,解決運作時錯誤的問題
找到 “bool CKnownFile::CreateFromFile(…)” 函數,替換擷取檔案大小的函數即可編譯通過,正常運作。
if (!file){
AfxMessageBox(GetResString(IDS_CANTOPENFILE) + strFilePath, MB_ICONSTOP, MB_OK);
return false;
}
// 修改後的代碼
CFile cfile;
CFileStatus rStatus;
CFile::GetStatus(strFilePath, rStatus);
ULONGLONG fileSize = rStatus.m_size;
// set filesize
if (fileSize > MAX_EMULE_FILE_SIZE){
fclose(file);
return false; // not supported by network
}
SetFileSize((uint64)fileSize);
// 原代碼
// // set filesize
// if (_filelengthi64(*(int*)file/*->_file*/) > MAX_EMULE_FILE_SIZE){
// fclose(file);
// return false; // not supported by network
// }
// SetFileSize((uint64)_filelengthi64(*(int*)file/*->_file*/));
setvbuf(file, NULL, _IOFBF, 1024*8*2);
3.附一個校驗結果
ed2k://|file|zh-hans_windows_xp_professional_with_service_pack_3_x86_cd_vl_x14-74070.iso|630237184|EC51916C9D9B8B931195EE0D6EE9B40E|p=0324339B668EB5107D69F262822F41A8:B33098259D4CA324A47F57D029C9E769:CEF9073D25E17ED434444530471648CE:7386CDF6C72612CD564C8898AD2956A8:5029B4E6DB955DB01D9A2D326568A8FB:E1275B9819A670CE8A705D312913A947:44D34E76957B30BD8F4C4E4D8DC541FE:3CB1EF41389DF85F7246E97AE9DA450C:3D37D9433005FE09D895D44053727009:ACE743780A31CF1C9BC829AFD7D842E3:4891796D884E7DDC9E381F2FEAB62A3D:8AE706C7C3006989EC1C97016C0EA586:D269EB7E9328E9409E4485CA8DD43F06:23BB4331F1465AEC514F9991BC975CF5:03D8E2F0BA74F5C59D16E2B1A0A9B7F1:1A750E06370B59209338F84173EED6F5:F23CB91F6AD3BCC00BBC8E8E912A9C7B:2889BB0D4F3B1698DB031834C8E3B30C:621497BF4B176E06C5AA33CE27F3CF9B:8BA77124B0CF17AC009AEA11232C1F5B:E370B9A038318A5B7D1FDE6233590952:36D661CF77E14C71ACA0380C0DF01B8E:9B96585DA4E6AB7C43B3114963D9A827:C8941389CECFFFE977578FA37C7F2E71:05FCECBD173E2702F9ED8B121B35540D:D788D61F35A038E58F048C8B8E3BC2A5:4D05DADCB95D23E8B806D9561DB24746:7C24339D1001E9BD794EFC869CAA5516:9C5704D92020C35198A5948401317650:6110ED6319433317AE3B56656F962416:6DD53744859E9B9BDE01208108B75137:C6255ECC4AC3E6647DC6838B2A597540:844EF71A37444A602126E90E88C7CB54:88552B25786D214DA6ADCD8253263059:D8AB5FE526E4A78B8D4FF95C10F29D26:72A9D92E5042B36E6EA31E6F54611D83:197B46AC2759127869FA9F795DB66284:CA47B0803388ADBDF9E83E79AE065E27:43B7DA97047423EA8D502CA095C942A3:FE4C3D52441DF64C6D3A80B8F7EBAC11:175261DF7B199FB15A8EC69E756833DE:7A5FBE6D8547AE44BDA2EDBF6703BADA:08E2981342D9C4C8FE1AA473F6C47A3E:D38061BA40A3E0F6DC32669130F7ACB0:3C9BE4AFC2012631E9705475517C5619:EE79CAA7316EBCD28ECC64E4655FE683:60D56E003E622DDB5416B25A653BFB57:67B9F556B0154107292CC8CC0FD3EA33:01C2A2F274CBB8DEED5B30D6E9E6F09B:335FE914B0192BF1AEE61F5FC9E2E166:7BB3A4B66509E411A065B574DF71D6F3:0A218D15930759E391DD7382D62E392C:0ADF43D94D10F1967573A862AAEF623C:5253681BFD6235698242B112102BF4E2:B86C721F417215BFA84E2A799A14DD3B:22244C89B35B946575E26D3835F7D53A:4E5529A4961EDA0C59742528A37B23C6:758BBBB2583F3295F469FE8C574AA794:EC597A03AA0184FCCFB8613DE5A15F75:B4DFC4A0BD31FBCAA4A2648FCB457D60:F882ACFD5949068015F1CC64CBC23991:AA3D88CDE116339DAC45CB0BE5537779:5B2027C125C5A37E240833D8AB7EA1C6:27604D132B931F228495AA6D55857C5A:C7F93D6756C44449F3CA6F8E238F5C85|h=LRBTLEWQ4SJVGBUFC5YR2OYIBCS44MBK|/
參考連結:
1.error LNK2026: 子產品對于 SAFESEH 映像是不安全的_孤獨的糖三角-CSDN部落格
2.關于錯誤: error C2065: “CCM_SETWINDOWTHEME”: 未聲明的辨別符 解決方法_flydream3618的專欄-CSDN部落格
3.擷取檔案大小的六種方法大全,打開檔案和不打開檔案都有,C方法擷取,C++方法擷取,MFC方法擷取。_ec06cumt的專欄-CSDN部落格 注釋掉的第6種方法