Articles of 可视化工作室

为什么在VCC 2003中编译这么长时间?

我的团队需要“Sobol准随机数字发生器” – 一个以优质结果和运行速度而闻名的常见RNG。 我发现在networking上看起来像一个简单的C实现 。 在家里,我几乎可以用我的Linux GCC编译器立即进行编译。 第二天,我在工作中尝试:如果我在debugging模式下在Visual Studio中编译大约需要1分钟。 如果我要在发布模式下编译它, 大约需要40分钟。 为什么? 我知道“释放”模式会触发一些编译器优化…但是这个小文件究竟要花多长时间才能优化呢? 这主要是评论和静态数据。 几乎没有什么值得优化的。 这些电脑都不是特别慢,在任何情况下我都知道在一系列Windows电脑上编译时间是一致的。 我也听说Visual Studio的新版本有更快的编译时间,但是现在我们被困在Visual Studio.Net 2003中。在GCC(与Ubuntu 8.04捆绑在一起)上编译总是需要几微秒。

Visual Studio sizeof非法操作数

我目前正在将Linux上开发的程序移植到Win32上。 在其他问题中,我有一个很奇怪的问题。 一个头文件包含这样的东西: namespace Networking { struct MetaStruct { int iDataType; int iDataSize; void* pData; }; const int MetaStructSize = sizeof(MetaStruct) – sizeof(MetaStruct::pData); }; 这在Linux上编译得很好,但是在使用VS2010编译Win32时出现这个错误: Networking.hpp(50): error C2070: '': illegal sizeof operand 我尝试在MetaStruct之前添加Networking::但它不会改变任何东西。 奇怪的是VS2010给我正确的sizeof值,当我用鼠标hover它,但不会编译它。 为什么?

代码,生成和运行在单独的机器上。 Posssible?

我知道我可以在一台机器上编码,并在不同的机器上构build(即构build服务器)。 现在我也听说你可以让Visual Studio在虚拟机上运行一个构build(我认为它需要Virtual PC)。 现在我的问题是,如果有人能够在机器A上编码,让它在机器B上编译并在机器C上运行debugging服务器?

错误C2327:不是types名称,静态或枚举器

我在Windows上面对“错误C2327”。 我减less了我的代码,并得到与testing程序类似的错误 #include <boost/intrusive/list.hpp> #include <iostream> class Test { protected: typedef Test self_type; boost::intrusive::list_member_hook<> order_hook; public: typedef boost::intrusive::member_hook<self_type, boost::intrusive::list_member_hook<>, & Test::order_hook > order_hook_type; }; 这工作正常在g ++,但在Windows提供以下错误: test.cpp(11) : error C2327: 'Test::order_hook' : is not a type name, static, or enumerator test.cpp(11) : error C2065: 'order_hook' : undeclared identifier 请帮忙。 我失踪的窗户?

是否有可能哄std :: atomic <T>输出CMPXCHG16B

是否有可能哄std ::primefaces输出CMPXCHG16B我不想在Windows x64上使用primefaces互锁操作感兴趣的types,或者我只需要吮吸它并手动执行primefaces操作? 我可以得到GCC / Clang在Linux上这样做,所以我怀疑它只是与Microsoft标准库的一个问题。 struct Byte16 { int64_t a, b; }; std::atomic<Byte16> atm; Byte16 a = { 1, 2 }; atm.compare_exchange_strong(…); // This has a lock on Windows, not on Linux version of code

向后寻找时,libvlc_media_player_set_position失败

我正在使用libvlc 3.0.0(我也试过2.2.0)在Visual Studio 2012的Windows 7上从h264编码的mp4文件(不包括声音,只有video帧)中捕获帧。我可以播放,暂停,停下来,没有任何问题的前进。 但是当我试图倒退时,我遇到了问题: 场景:如果我只打电话libvlc_media_player_set_position (或libvlc_media_player_set_time ),它似乎是去的位置。 但是vlc停止发送帧接收callback(换句话说,播放器冻结),直到它在libvlc_media_player_set_position函数调用之前到达相同(或下一个)帧。 counter = 0; while (true) { sleep(40); // 25 hz ++counter; if(counter % 100 = 0) { // assuming current_position > 0.1f libvlc_media_player_set_position(p_mi, 0.1f); } } 场景:只有当我第一次停止玩家时,我才能使其工作,然后从头开始玩。 counter = 0; while (true) { sleep(40); // 25 hz ++counter; if(counter % 100 = 0) { // […]

如何在Visual Studio 2008 xml编辑器中编辑工作项目?

我试图通过VS2008 XML编辑器自定义一些TFS工作项目,但每次打开一个工作项目XML文件,它跳转到graphicsdevise器。 所有给我的是一个“查看XML”button,不让你直接编辑xml。

某些exception错误是否仅在debugging器中发生?

在一个程序中,我不小心在一个互斥量句柄上调用了closeHandle()两次(closures已经closures的句柄)。 在debugging器中运行代码时,收到exception错误An invalid HANDLE was specified. 如预期。 但是,程序“正常”作为独立运行(在debugging器之外),exception不会出现或出现任何其他错误。 程序似乎正常运行。 这只是在Visual Studio .NET 2003中的设置,还是有更多的背后呢?

MFC是否被弃用?

目前我正在做一个使用MFC的项目,但是现在MFC技术并没有被广泛的使用。 MFC如何被弃用? 有什么替代品呢? 我在Windows上使用VS2010。 谢谢您的回答。

是否有一个Visual C ++的__builtin_constant_p()?

有没有像GCC的__builtin_constant_p()为Microsoft Visual Studio的一些function? 据我所知,函数返回非零,如果参数是不变的,就像一个string文字。 在这里的答案( 如何有“constexpr和运行时”别名 )是一个很好的用例。 编辑:我的想法是写而不是像: #include <string.h> int foo() { return strlen("text"); } 我可以写: #include <string.h> // template_strlen() would be a function that gets the length of a compile-time const string via templates #define STRLEN(a) (__builtin_constant_p(a) ? template_strlen(a) : strlen(a)) int foo() { return STRLEN("text"); } (我猜这是关于在链接的问题中写的是什么)。我所需要的是__builtin_constant_p()的变体。