天天看點

Win7 VS2015 編譯 LinkCreator0.7_Src 筆記1.介紹2.修改項目生成可執行程式3.附一個校驗結果

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種方法

繼續閱讀