Men yaqinda Notepad++ uchun NppAutoIndent plaginidan foydalanishni boshladim va Smart Indent rejimidan juda mamnun bo‘ldim, lekin uning sozlanishi mumkin bo‘lgan afzalliklari yo‘qligi zerikarli deb hisoblayman, chunki Smart Indent rejimida bir nechta xatti-harakatlar bor, ularni o‘zgartirishni xohlayman/ o'zgartirish. Men plaginning manba kodini o‘zgartirish va kerakli xatti-harakatlarga erishish uchun uni qayta kompilyatsiya qilish haqida o‘yladim, lekin menda Visual Studio 2010 va plagin uchun loyiha VS 2003 loyihasiga o'xshaydi va men Visual Studio'dan C/C++ loyihalari uchun foydalanishni to'liq boshlovchiman. Loyihani VS 2010 ga o'tkazishda berilgan ba'zi ogohlantirishlar bilan shug'ullanishni qaerdan boshlashni ham bilmayman.
Qisqasi: NppAutoIndent plaginiga ko'proq moslashtirilgan alternativa bormi yoki VS 2010 uchun manba loyihasini yangilashning yaxshiroq yo'li bormi?
YANGILANISH:
Bu erda ogohlantirishlarning aksariyati. Ularning ko'pchiligi ahamiyatsiz bo'lib tuyuladi, ammo qaysi biriga e'tibor berish kerakligiga ishonchim komil emas.
- C/C++ kompilyatori uchun istisnolarni qayta ishlash kalitlari o'zgarishi sababli, /EHsc ushbu loyihada avtomatik ravishda /EHa ga aylantirildi.
- “C:[...]\NppAutoIndent\project\NppAutoIndent.vcxproj” yangi loyiha fayliga aylantirish tugallandi.
- Visual C++ loyihalari oʻrnatilgan (standart boʻyicha) Windows SxS manifestini ishlab chiqarish talabi tufayli loyihadagi manifest fayllari endi Manifest Tool bilan avtomatik tarzda quriladi. To'g'ri ishlashi uchun siz tuzilmangizni o'zgartirishingiz kerak bo'lishi mumkin. Misol uchun, har qanday manifest fayllaridagi bog'liqlik ma'lumotlarini manba kodingizdan kiritilgan sarlavha faylida "#pragma comment(linker,"")" ga aylantirish tavsiya etiladi. Agar loyihangiz manifestni RT_MANIFEST resurs bo'limiga resurs (.rc) fayli orqali joylashtirgan bo'lsa, loyiha to'g'ri tuzilishidan oldin qatorga izoh berish kerak bo'lishi mumkin.
- C++ kompilyatoridagi muvofiqlik o'zgarishi sababli, loyihangiz xatosiz tuzilishidan oldin kodni o'zgartirish talab qilinishi mumkin. C++ kompilyatorining oldingi versiyalari aʼzo funksiyasi koʻrsatkichlarini aʼzo funksiya nomi (masalan, MemberFunctionName) boʻyicha spetsifikatsiya qilishga ruxsat berdi. C++ standarti operator manzili (masalan, &ClassName::MemberFunctionName) yordamida toʻliq malakali nomni talab qiladi. Agar loyihangizda Windows Forms Designer-da ishlatiladigan shakllar yoki boshqaruv elementlari bo'lsa, InitializeComponent-da kodni o'zgartirishingiz kerak bo'lishi mumkin, chunki dizayner delegatlar qurilishida mos kelmaydigan sintaksisni yaratgan (hodisalar ishlov beruvchilarida ishlatiladi).
- Ushbu ilova Windows Vista’ning foydalanuvchi hisobini boshqarish (UAC) funksiyasi bilan bog‘liq sozlamalarni o‘z ichiga olishi uchun yangilangan. Odatiy bo'lib, Windows Vista'da UAC yoqilgan holda ishga tushirilganda, ushbu ilova uni ishga tushirgan jarayon bilan bir xil imtiyozlar bilan ishlaydi deb belgilangan. Ushbu belgi, shuningdek, dasturni virtualizatsiya bilan ishlashni o'chirib qo'yadi. UAC bilan bog'liq sozlamalarni loyihaning mulk sahifalarida o'zgartirishingiz mumkin.
- "VCCLCompilerTool" ning "Detect64BitPortabilityProblems" atributi ushbu versiyada qo'llab-quvvatlanmaydi va konvertatsiya paytida o'chirib tashlangan.
- VCWebServiceProxyGeneratorTool endi qo'llab-quvvatlanmaydi. Asbob loyiha sozlamalaringizdan olib tashlandi.
- C/C++ kompilyator kaliti /Og eskirgan va loyiha sozlamalaringizdan olib tashlandi. Buning o'rniga /O1 yoki /O2 dan foydalanish tavsiya etiladi.
- VCConvertEngine, VCCLCompilerTool vositasi ostida GlobalOptimizations = TRUE atributini aylantira olmadi.
- "VCCLCompilerTool" ning "Detect64BitPortabilityProblems" atributi ushbu versiyada qo'llab-quvvatlanmaydi va konvertatsiya paytida o'chirib tashlangan.
- "VCLinkerTool" ning "OptimizeForWindows98" atributi ushbu versiyada qo'llab-quvvatlanmaydi va konvertatsiya paytida o'chirib tashlangan.
- VCConvertEngine, VCCLCompilerTool vositasi ostida GlobalOptimizations = TRUE atributini aylantira olmadi.
- "VCCLCompilerTool" ning "Detect64BitPortabilityProblems" atributi ushbu versiyada qo'llab-quvvatlanmaydi va konvertatsiya paytida o'chirib tashlangan.
- "VCLinkerTool" ning "OptimizeForWindows98" atributi ushbu versiyada qo'llab-quvvatlanmaydi va konvertatsiya paytida o'chirib tashlangan.
- "VCCLCompilerTool" ning "Detect64BitPortabilityProblems" atributi ushbu versiyada qo'llab-quvvatlanmaydi va konvertatsiya paytida o'chirib tashlangan.
- MSB8012: $(TargetName) ('NppAutoIndent') 'Debug|Win32' loyiha konfiguratsiyasidagi '..\build\NppAutoIndentA_D.dll' ('NppAutoIndentA_D') bog'lovchining OutputFile xususiyati qiymatiga mos kelmaydi. Bu sizning loyihangizni noto'g'ri qurishga olib kelishi mumkin. Buni tuzatish uchun $(TargetName) xususiyat qiymati %(Link.OutputFile) da koʻrsatilgan qiymatga mos kelishiga ishonch hosil qiling.
- MSB8012: $(TargetPath) ('C:[...]\NppAutoIndent\project..\build\Debug\NppAutoIndent.dll') bog'lovchining OutputFile xususiyati qiymatiga mos kelmaydi '..\build\NppAutoIndentA_D.dll' ( 'C:[...]\NppAutoIndent\build\NppAutoIndentA_D.dll') 'Debug|Win32' loyiha konfiguratsiyasida. Bu sizning loyihangizni noto'g'ri qurishga olib kelishi mumkin. Buni tuzatish uchun $(TargetPath) xususiyat qiymati %(Link.OutputFile) da koʻrsatilgan qiymatga mos kelishiga ishonch hosil qiling.
- MSB8012: $(TargetName) ("NppAutoIndent") "Release|Win32" loyiha konfiguratsiyasidagi "..\build\NppAutoIndentA.dll" ("NppAutoIndentA") bog'lovchining OutputFile xususiyati qiymatiga mos kelmaydi. Bu sizning loyihangizni noto'g'ri qurishga olib kelishi mumkin. Buni tuzatish uchun $(TargetName) xususiyat qiymati %(Link.OutputFile) da koʻrsatilgan qiymatga mos kelishiga ishonch hosil qiling.
- MSB8012: $(TargetPath) ('C:[...]\NppAutoIndent\project..\build\Release\NppAutoIndent.dll') bog'lovchining OutputFile xususiyati qiymatiga mos kelmaydi '..\build\NppAutoIndentA.dll' ( 'C:[...]\NppAutoIndent\build\NppAutoIndentA.dll') 'Release|Win32' loyiha konfiguratsiyasida. Bu sizning loyihangizni noto'g'ri qurishga olib kelishi mumkin. Buni tuzatish uchun $(TargetPath) xususiyat qiymati %(Link.OutputFile) da koʻrsatilgan qiymatga mos kelishiga ishonch hosil qiling.
- MSB8012: $(TargetPath) ('C:[...]\NppAutoIndent\project..\build\Release Unicode\NppAutoIndent.dll') Linkerning OutputFile xususiyati qiymatiga mos kelmaydi "..\build\NppAutoIndent.dll" ('C:[...]\NppAutoIndent\build\NppAutoIndent.dll') loyiha konfiguratsiyasida 'Unicode|Win32 chiqaring'. Bu sizning loyihangizni noto'g'ri qurishga olib kelishi mumkin. Buni tuzatish uchun $(TargetPath) xususiyat qiymati %(Link.OutputFile) da koʻrsatilgan qiymatga mos kelishiga ishonch hosil qiling.
- MSB8012: $(TargetName) ("NppAutoIndent") "Debug Unicode|Win32" loyiha konfiguratsiyasidagi "..\build\NppAutoIndent_D.dll" ("NppAutoIndent_D") Linkerning OutputFile xususiyati qiymatiga mos kelmaydi. Bu sizning loyihangizni noto'g'ri qurishga olib kelishi mumkin. Buni tuzatish uchun $(TargetName) xususiyat qiymati %(Link.OutputFile) da koʻrsatilgan qiymatga mos kelishiga ishonch hosil qiling.
- MSB8012: $(TargetPath) ('C:[...]\NppAutoIndent\project..\build\Debug Unicode\NppAutoIndent.dll') Linkerning OutputFile xususiyati qiymatiga mos kelmaydi '..\build\NppAutoIndent_D.dll' ('C:[...]\NppAutoIndent\build\NppAutoIndent_D.dll') 'Debug Unicode|Win32' loyiha konfiguratsiyasida. Bu sizning loyihangizni noto'g'ri qurishga olib kelishi mumkin. Buni tuzatish uchun $(TargetPath) xususiyat qiymati %(Link.OutputFile) da koʻrsatilgan qiymatga mos kelishiga ishonch hosil qiling.