visual-c++相关内容
修改:这确实是由Visual Studio中的错误导致的 - 它已被修复。 (发布候选人在这里)。我道歉;我以为我是最新的补丁。 我不能为我的生活找出为什么我当我在Visual Studio 2013中运行以下代码时遇到seg故障: #include struct Base { virtual
..
如果在C ++程序中抛出异常,则控制被传递到异常处理程序或调用 terminate()。 即使程序从处理程序(或从 terminate() handler)中发出一些诊断,这可能太晚了,最大的价值在于调用 在Windows上,可以使用 c> [StackWalk64()] 1 功能。关键是如何在正确的时刻调用该函数。 有一种方法使Visual C ++程序在每次异常(或异常 $
..
我使用Visual C ++ 2008,SP1。我有一个QT应用程序(gui,.exe)在调试生成配置。它设置为使用CRT的多线程调试DLL版本,也就是MSVCRTD.lib。 我链接到第三方库,它是在发布模式并使用多线程DLL(非调试)版本的CRT,也就是MSVCRT.lib。 它链接并运行,但在启动时崩溃。当链接时,我收到警告: LINK:warning LNK4098:de
..
在从Visual Studio(2008)移植一大段C ++代码到Xcode(4.4+),我遇到了如下行: UNUSED_ALWAYS(someVar); UNUSED_ALWAYS(x) code> UNUSED(x))宏扩展为 x 这似乎使Visual C ++沉默。 对于Clang,我通常使用 #pragma未使用的x 指令。 p> UN
..
我有一个DLL,我想使用它的一些功能。 #include
..
我有一些Visual C ++代码接收指向缓冲区的指针,需要由我的代码处理的数据和缓冲区的长度。由于我的控制之外的错误,有时这个指针进入我的代码未初始化或不适合读取(即,当我尝试访问缓冲区中的数据时会导致崩溃。) 所以,我需要在使用它之前验证这个指针。我不想使用IsBadReadPtr或IsBadWritePtr,因为每个人都同意他们是buggy。 (Google的例子)。他们也不是线程安全
..
我想从我的C ++程序远程执行另一个应用程序。到目前为止,我使用CreateProcess(...)函数,它的工作正常。 问题是,我需要其他程序的完整路径,我不知道它的目录。所以我想要的是,我只需要输入其他程序的名称,就像当你输入“cmd”或“winword”到运行...它打开相应的程序。 提前感谢, Russo 解决方案 如果你像这样使用CreateProcess:
..
我最近发布了一个问题: 静态类成员的初始化。 现在请检查此代码: #include
..
我有以下情况:有一个巨大的模板,如 std :: vector 将调用 memmove()移动数组的部分。有时他们想要移动零长度零 - 例如,如果数组尾被删除(如 std :: vector :: erase()),他们将想要移动数组的其余部分,这将发生在长度为零,并且零将在编译时被知道(我看到反汇编 - 编译器知道),但编译器仍然会发出 memmove()调用。 所以基本上我可以有一个包装
..
我想使用现代版本的GCC和MSVC附带的TR1库,但有一些细微的差别:在GCC中,我不得不说 #include std :: tr1 :: shared_ptr X;在MSVC中,我必须说 p $ p> #include std :: shared_ptr X; 我
..
我有一个拥有一个属性Texture_ID的对象。我需要在构造函数中初始化Texture_ID的值,所以我想要一些值没有被OpenGL使用,表示纹理还没有设置。 我不知道零(0)是否是一个好的值?如果有一个范围,OpenGL应用于纹理ID,我想要的值超出这个范围。任何想法? 解决方案 0是您要查找的值(表示未设置的纹理ID /未处理的纹理) 0从不是有效的纹理ID。
..
任何人知道如何将BSTR转换为char *? 更新:我试图这样做,但不知道是对还是错。 p> char * p = _com_util :: ConvertBSTRToString(URL-> bstrVal); strcpy(testDest,p); 解决方案 ConvertBSTRToString 只是这样。对于 strcpy , testDest 需
..
我正在使用Visual C ++ Express 2010 ...我对C ++非常新。 我想读取一个文件, “ 这是我到目前为止阅读文件的代码: #include“stdafx.h” #include #include using namespace std; int main(){ ifstream myRea
..
首先,COM对我来说就像是黑魔法。但我需要在我正在开发的一个项目中使用COM dll。 所以,我有一个DLL,我正在开发,我需要一些功能,单独的COM DLL。当我看到COM DLL与Depends.exe我看到的方法像DllGetClassObject()和其他函数,但没有我感兴趣的功能。 我有访问到COM DLL(遗留)源代码,但它是一个混乱,我宁愿喜欢使用COM DLL在二进制,
..
我正在开发一个VC ++ NT服务,旨在连续运行多个月。它使用VC ++运行时堆。很明显,堆碎片可以在某些时候导致其故障(认为它是内存不足)。 我可以在我的服务上运行什么测试来估计它容易堆的程度碎片? 解决方案 您已经得到了几个关于如何防止堆碎片问题的答案,你的问题直接。几乎唯一的方法估计它是如何可能遭受碎片问题是模拟大量的使用,并衡量你得到的碎片。 由于它是一个NT服务,模拟
..
从Visual C ++,如何获取当前用户的我的文档文件夹的路径? 编辑: 我有这个: TCHAR my_documents [MAX_PATH]; HRESULT result = SHGetFolderPath(NULL,CSIDL_MYDOCUMENTS,NULL,SHGFP_TYPE_CURRENT,my_documents); 但是, resul
..
这与现有的MSVC编译器完全一致: struct Foo { } const foo; 但是,无法使用当前的g ++编译器进行编译: 错误:uninitialized const'foo'[-fpermissive] 注意:'const struct Foo'没有用户提供的默认构造函数 如果我自己提供一个默认构造函数,它的工作原理:
..
class AAA { public: AAA(){} AAA(const AAA&){} }; class BBB { public: BBB(){} operator AAA(){AAA a; return a; } }; int main(){ BBB b; AAA a = {b}; } 上述代码在g ++和vc ++上编译,但
..
此网站上有几个问题,询问是否可以使用 volatile 变量进行原子/多线程访问:请参阅这里,此处,或此处。 现在,C(++)标准一致的回答显然是没有。 但是,在Windows& Visual C ++编译器,情况似乎不太清楚。 我最近回答并引用了官方MSDN文档 volatile Microsoft专用 声明为volatile的对象为(...) 写入volat
..
我有一个客户仍在使用Visual Studio 6构建生产系统。他们编写使用STL并在多处理器机器上运行的多线程系统。 有时候,当他们改变其中一台服务器的规格或增加负载时,他们很难重现错误... 我知道Visual Studio 6开发有几个问题,我想说服他们迁移到Visual Stuio 2005或2008(他们有Visual Studio 2005并用于一些项目) 。 此问题
..