草庐IT

c++ - MinGW/Eclipse ld.exe 找不到库

我正在使用EclipseCDT尝试使用Ogre3D引擎编译项目。但不知何故,mingw无法找到我链接的静态库。这些是错误消息:c:/mingw/bin/../lib/gcc/mingw32/4.6.1/../../../../mingw32/bin/ld.exe:cannotfind-lzziplib_dc:/mingw/bin/../lib/gcc/mingw32/4.6.1/../../../../mingw32/bin/ld.exe:cannotfind-lzlib_dc:/mingw/bin/../lib/gcc/mingw32/4.6.1/../../../../mingw3

c++ - 如何在 Windows 上的 Release模式下避免 "program.exe has stopped working"窗口?

我正在开发VisualStudio2010上的C++软件。由于该软件应该在无法进行人工交互的服务器上运行,我真的需要摆脱这个“program.exe已停止工作”窗口,在出现错误时在发布版本中弹出。我只是希望程序终止(也许还会给出错误消息,但不一定)并且不要让它保持阻塞等待某人单击“关闭程序”按钮。我不得不提一下,我的机器上有64位Windows7Professional。我已经阅读了几件事,例如:_set_abort_behavior函数。这解决了调用abort()时的情况,但对于诸如“vector下标超出范围”之类的错误,情况并非如此。我知道我可以通过异常处理来解决其中一些错误,但并

c++ - 我应该使用 vcredist.exe 还是 msm 来安装 Visual C++ 运行时库

使用vcredist.exe与msm文件安装VisualC++8.0运行时库的优缺点是什么? 最佳答案 合并模块一旦安装就无法更新(除非他们在WindowsInstaller中解决了这个问题),所以我的建议是坚持使用vcredist.exe。 关于c++-我应该使用vcredist.exe还是msm来安装VisualC++运行时库,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1

c++ - 是什么让 EXE 变大?

我的可执行文件大小为364KB。它没有使用Vector2D类,所以我用重载运算符实现了一个。我更改了大部分代码point.x=point2.x;point.y=point2.y;到point=point2;这导致我删除了近1/3的代码行,但我的exe仍然是364KB。究竟是什么导致它变大? 最佳答案 编译器可能通过内联优化了运算符重载。因此,它可以有效地编译为与原始示例相同的代码。因此,您可能通过重载赋值运算符减少了很多代码行,但是当编译器内联时,它会获取赋值运算符的内容并将其inline粘贴在调用点。内联是可执行文件大小增长的方式

c++ - 如何使用 Google Test 测试 EXE?

我在VisualStudio中有一个C++项目,并添加了另一个专用于测试的项目。这两个项目都是EXE(控制台应用程序)。那么如何在第二个项目中使用第一个项目呢?只是为了澄清,如果第一个项目是一个可以简单地包含在第二个项目中的库,那么这里的问题将是不言而喻的,但是作为一个EXE,这就是问题所在。 最佳答案 根据您的评论,您有一个C++控制台应用程序(MyApp),您已经为其开发了一些特定于应用程序的类,您希望在其中使用googletest进行单元测试视觉工作室。如何?正如您所说,如果您想对库进行单元测试,那么这样做的方法是明显的。你会

c++ - EXE 或 DLL 镜像基址

在C++/windows中有没有办法获取exe/DLL镜像基址?谢谢:) 最佳答案 如果您将二进制文件加载到您自己的进程中,您可以使用GetModuleHandle.它返回一个HMODULE,但那是thesameasHINSTANCEandthebaseaddress.如果你想知道二进制更喜欢哪个基地址,你应该阅读PE头。见here并在IMAGE_OPTIONAL_HEADER中查找ImageBase字段。编辑:GetModuleHandle(NULL)将返回当前进程的基地址(尽管指定的类型是HMODULE)。

C++: LINK : debug\XXXXX.exe not found 或不是由最后一个增量链接构建的;执行完整链接

使用VisualStudio2008SP1,这一行:LINK:debug\XXXXX.exenotfoundornotbuiltbythelastincrementallink;performingfulllink每次编译项目时都会出现,无论我做了多么小的更改。这可能是什么原因? 最佳答案 老问题,但以防万一它仍然是一个问题(而且它是..)。增量链接与生成list文件不兼容(项目选择>链接器>list文件>生成list:是)。实际上,生成list会修改exe/dll,因此链接器必须进行完全链接。有一些解决方法,有关更多详细信息:ht

c++ - 如何在 Windows Vista/7 中以编程方式控制文本输入面板 (TabTip.exe)

我正在为触摸屏界面调整应用程序,我们希望使用WindowsVista/7中包含的平板电脑文本输入面板,特别是它的键盘。我想根据我的应用程序显示和隐藏它。基本上我想要ShowKeyboard()和HideKeyboard()函数。控制这种情况的最佳方法是什么?我查看了ITextInputPanelAPI,但无法直接用它控制键盘(也许我错过了什么?)。我也没有成功尝试将窗口消息发送到它的窗口。应用程序是用C++/MFC编写的。非常感谢任何指针。 最佳答案 我解决了这个问题。事实证明,Spy++确实是Windows程序员最好的friend

c++ - 如何使 C++ EXE 更大(人工)

我想制作一个比应有的大得多的虚拟Win32EXE文件。所以默认情况下,样板Win32EXE文件为80KB。我想要一个5MB的空间来测试其他一些实用程序。第一个想法是添加资源,但事实证明,在内存分配方面,嵌入式资源与5MB代码不同。我在想我可以引用一个大型库并最终得到一个巨大的EXE文件?如果不是,也许编写几千个类似的方法,如AddNum1、AddNum2等?非常感谢任何简单的想法。 最佳答案 简单地定义一个大的静态字符数组怎么样?charconstbigarray[5*1024*1024]={1};另请参阅我在此线程中的其他答案,我

c++ - 如何使用 link.exe 进行静态链接

我一直在尝试静态链接一个名为Poco的C++库。在Windows上使用VisualStudio2008命令行工具。我构建我的程序:cl/I..\poco\lib/cmyapp.cpplink/libpath:..\poco\libmyapp.objPocoNet.lib这会导致运行时需要PocoNet.dll和PocoFoundation.dll的exe。我花了一些时间阅读Windows中的链接,并了解到cl/MT静态链接到标准库,而cl/MD链接动态。我尝试指定/MT,但这似乎并没有改变任何东西;我的应用程序仍然需要PocoDLL。(我也怀疑/MT是默认行为。)查看..\poco\l