موردی که من مطرح کردم تنها نکته ای برای مقاله شما بود که مجددا اینجا توضیحاتی می دهم.
اول اینکه باید نوع پروژه مشخص شود، که پروژه شما از نوع MFC هست.
پروژه های MFC نیازمند دو دسته کتابخانه هستند:
1- کتابخانه های MFC
2- کتابخانه های C run-time
اگر پروژه ای قرار هست کلا بدون نیازمندی به dll ای ساخته شود باید هر دو مورد فوق به صورت static لینک شوند نه فقط کتابخانه های MFC.
در مقاله، مورد اول را در Properties از طریق Use MFC in a static library لینک کردید.
اما مورد دوم را ذکر نکردید، یعنی :
Project -> Properties ->C/C++ -> Code Generation -> Runtime library -> /MT
هر چند که با اعمال مورد اول، مورد دوم نیز خودکار معمولا توسط کامپایلر تنظیم می شود، اما تنها جهت محکم کاری باید آن را چک کرد.
در هر دو مورد فوق لینک کردن به شکل static معایب و محدودیت هایی دارد که به برخی از آن ها در لینک زیر اشاره کرده ام:
http://www.barnamenevis.org/sh...d.php?t=151958
پس اگر این دو مورد انجام شوند آنگاه فایل اجرایی بی نیاز به نصب کتابخانه ای هست، اما باید محدودیت های احتمالی را در نظر بگیرید و در جای درست به شکل static برنامه را عرضه کنید.
در پایان مطلبی از توصیه های مایکروسافت جهت استفاده نکردن از حالت static linking تا جای ممکن:
Prefer dynamic linking over static linking:
It is not recommended to redistribute C/C++ applications that statically link to Visual C++ libraries. It is often mistakenly assumed that by statically linking your program to Visual C++ libraries it is possible to significantly improve the performance of an application. However the impact on performance of dynamically loading Visual C++ libraries is insignificant in almost all cases. Furthermore, static linking does not allow for servicing the application and its dependent libraries by either the application's author or Microsoft. For example, consider an application that is statically linked to a particular library, running on a client computer with a new version of this library. The application still uses code from the previous version of this library, and does not benefit from library improvements, such as security enhancements. Authors of C/C++ applications are strongly advised to think through the servicing scenario before deciding to statically link to dependent libraries, and use dynamic linking whenever possible.
همان طور که می بینید رفع نواقص یا حتی موارد امنیتی که توسط windows update انجام می شوند در حالت static دیگر قابل اعمال نیستند.