visual-c++相关内容

每当在Visual C ++程序中抛出异常时,如何运行一些代码?

如果在C ++程序中抛出异常,则控制被传递到异常处理程序或调用 terminate()。 即使程序从处理程序(或从 terminate() handler)中发出一些诊断,这可能太晚了,最大的价值在于调用 在Windows上,可以使用 c> [StackWalk64()] 1 功能。关键是如何在正确的时刻调用该函数。 有一种方法使Visual C ++程序在每次异常(或异常 $ ..
发布时间:2016-10-14 20:35:55 C/C++开发

如何针对已发布的库(MSVCRT.lib)构建调试.exe(MSVCRTD.lib)?

我使用Visual C ++ 2008,SP1。我有一个QT应用程序(gui,.exe)在调试生成配置。它设置为使用CRT的多线程调试DLL版本,也就是MSVCRTD.lib。 我链接到第三方库,它是在发布模式并使用多线程DLL(非调试)版本的CRT,也就是MSVCRT.lib。 它链接并运行,但在启动时崩溃。当链接时,我收到警告: LINK:warning LNK4098:de ..
发布时间:2016-10-14 20:32:33 C/C++开发

最有效的替换IsBadReadPtr?

我有一些Visual C ++代码接收指向缓冲区的指针,需要由我的代码处理的数据和缓冲区的长度。由于我的控制之外的错误,有时这个指针进入我的代码未初始化或不适合读取(即,当我尝试访问缓冲区中的数据时会导致崩溃。) 所以,我需要在使用它之前验证这个指针。我不想使用IsBadReadPtr或IsBadWritePtr,因为每个人都同意他们是buggy。 (Google的例子)。他们也不是线程安全 ..
发布时间:2016-10-14 20:31:25 C/C++开发

在C ++中执行另一个程序

我想从我的C ++程序远程执行另一个应用程序。到目前为止,我使用CreateProcess(...)函数,它的工作正常。 问题是,我需要其他程序的完整路径,我不知道它的目录。所以我想要的是,我只需要输入其他程序的名称,就像当你输入“cmd”或“winword”到运行...它打开相应的程序。 提前感谢, Russo 解决方案 如果你像这样使用CreateProcess: ..
发布时间:2016-10-14 20:29:21 C/C++开发

如果在编译时知道边缘条件,我如何可以省去调用?

我有以下情况:有一个巨大的模板,如 std :: vector 将调用 memmove()移动数组的部分。有时他们想要移动零长度零 - 例如,如果数组尾被删除(如 std :: vector :: erase()),他们将想要移动数组的其余部分,这将发生在长度为零,并且零将在编译时被知道(我看到反汇编 - 编译器知道),但编译器仍然会发出 memmove()调用。 所以基本上我可以有一个包装 ..
发布时间:2016-10-14 20:23:01 C/C++开发

在GCC和MSVC中使用TR1库

我想使用现代版本的GCC和MSVC附带的TR1库,但有一些细微的差别:在GCC中,我不得不说 #include std :: tr1 :: shared_ptr X;在MSVC中,我必须说 p $ p> #include std :: shared_ptr X; 我 ..
发布时间:2016-10-14 20:20:56 C/C++开发

什么是OpenGL纹理ID的范围?

我有一个拥有一个属性Texture_ID的对象。我需要在构造函数中初始化Texture_ID的值,所以我想要一些值没有被OpenGL使用,表示纹理还没有设置。 我不知道零(0)是否是一个好的值?如果有一个范围,OpenGL应用于纹理ID,我想要的值超出这个范围。任何想法? 解决方案 0是您要查找的值(表示未设置的纹理ID /未处理的纹理) 0从不是有效的纹理ID。 ..
发布时间:2016-10-14 20:20:01 C/C++开发

将BSTR转换为char *

任何人知道如何将BSTR转换为char *? 更新:我试图这样做,但不知道是对还是错。 p> char * p = _com_util :: ConvertBSTRToString(URL-> bstrVal); strcpy(testDest,p); 解决方案 ConvertBSTRToString 只是这样。对于 strcpy , testDest 需 ..
发布时间:2016-10-14 20:12:24 C/C++开发

如何在C ++中使用LoadLibrary的COM DLL

首先,COM对我来说就像是黑魔法。但我需要在我正在开发的一个项目中使用COM dll。 所以,我有一个DLL,我正在开发,我需要一些功能,单独的COM DLL。当我看到COM DLL与Depends.exe我看到的方法像DllGetClassObject()和其他函数,但没有我感兴趣的功能。 我有访问到COM DLL(遗留)源代码,但它是一个混乱,我宁愿喜欢使用COM DLL在二进制, ..
发布时间:2016-10-14 19:55:49 C/C++开发

如何在我的C ++程序中检测和估计堆碎片?

我正在开发一个VC ++ NT服务,旨在连续运行多个月。它使用VC ++运行时堆。很明显,堆碎片可以在某些时候导致其故障(认为它是内存不足)。 我可以在我的服务上运行什么测试来估计它容易堆的程度碎片? 解决方案 您已经得到了几个关于如何防止堆碎片问题的答案,你的问题直接。几乎唯一的方法估计它是如何可能遭受碎片问题是模拟大量的使用,并衡量你得到的碎片。 由于它是一个NT服务,模拟 ..
发布时间:2016-10-14 19:52:41 C/C++开发

获取我的文档的路径

从Visual C ++,如何获取当前用户的我的文档文件夹的路径? 编辑: 我有这个: TCHAR my_documents [MAX_PATH]; HRESULT result = SHGetFolderPath(NULL,CSIDL_MYDOCUMENTS,NULL,SHGFP_TYPE_CURRENT,my_documents); 但是, resul ..
发布时间:2016-10-14 19:50:20 C/C++开发

未初始化的const

这与现有的MSVC编译器完全一致: struct Foo { } const foo; 但是,无法使用当前的g ++编译器进行编译: 错误:uninitialized const'foo'[-fpermissive] 注意:'const struct Foo'没有用户提供的默认构造函数 如果我自己提供一个默认构造函数,它的工作原理: ..
发布时间:2016-10-14 19:49:39 C/C++开发

在Windows + VisualC上,易失性读写是否原子?

此网站上有几个问题,询问是否可以使用 volatile 变量进行原子/多线程访问:请参阅这里,此处,或此处。 现在,C(++)标准一致的回答显然是没有。 但是,在Windows& Visual C ++编译器,情况似乎不太清楚。 我最近回答并引用了官方MSDN文档 volatile Microsoft专用 声明为volatile的对象为(...) 写入volat ..
发布时间:2016-10-14 12:56:59 C/C++开发

从Visual Studio 6升级的一些令人信服的参数是什么?

我有一个客户仍在使用Visual Studio 6构建生产系统。他们编写使用STL并在多处理器机器上运行的多线程系统。 有时候,当他们改变其中一台服务器的规格或增加负载时,他们很难重现错误... 我知道Visual Studio 6开发有几个问题,我想说服他们迁移到Visual Stuio 2005或2008(他们有Visual Studio 2005并用于一些项目) 。 此问题 ..
发布时间:2016-10-14 12:54:31 C/C++开发