为什么vc++可以编译不能运行
1个回答
2016-07-19
展开全部
是这样,你在新建VC++工程的时候,其中有一项是选择将MFC库作为共享的DLL还是静态的DLL。
因为MFC程序在运行时需要一些DLL文件的支持,你从集成开发环境下编译运行时,有默认的路径来调用这些所需的DLL,因此运行不会有问题。而当你单独运行文件夹下的可执行程序时,如果一开始选择的是作为共享的DLL,则就会因为可执行程序的当前路径下没有所需的DLL文件而无法运行。
解决方法:
一种是打包程序,生成程序的安装包,就像商业软件一样。
另一种就是采用作为静态的DLL方式,即将程序要用到的库集成到生成的exe程序中。这样程序会稍稍大一点点,相当于一个绿色软件。你可以点击工程菜单下设置菜单项,常规选项卡,选择作为静态的DLL,重建工程就可以了。
因为MFC程序在运行时需要一些DLL文件的支持,你从集成开发环境下编译运行时,有默认的路径来调用这些所需的DLL,因此运行不会有问题。而当你单独运行文件夹下的可执行程序时,如果一开始选择的是作为共享的DLL,则就会因为可执行程序的当前路径下没有所需的DLL文件而无法运行。
解决方法:
一种是打包程序,生成程序的安装包,就像商业软件一样。
另一种就是采用作为静态的DLL方式,即将程序要用到的库集成到生成的exe程序中。这样程序会稍稍大一点点,相当于一个绿色软件。你可以点击工程菜单下设置菜单项,常规选项卡,选择作为静态的DLL,重建工程就可以了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询