问题标签 [visual-c++-2010]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
62 浏览

winforms - 如何在不调试的情况下启动项目,如启动调试模式?

我正在使用 C++ managed 2010 在 form.h 文件中设计 GUI。GUI 充当主查询从卡的数据流。

按下按钮调用一个函数(在 ApplicationIO.cpp 文件中),其中使用 API win32 (CREATETHREAD(...)) 创建了 2 个线程:前者用于处理数据流,后者用于数据解析和在 GUI 上实时监控 grpah 的数据。

该项目有两种不同的行为:如果它以调试模式启动,它能够在数据流期间将 GUI 控件更新为文本框(使用调用)和图形,相反,当它在没有调试的情况下启动时,文本框中不会出现任何数据,并且数据显示非常慢慢上图。

有没有人解决过类似的问题?请问有什么建议吗?

0 投票
1 回答
813 浏览

windows - HWND 的类型转换运算符重载返回垃圾而不是预期的成员值

我定义了一个要用于构建窗口的类。其中一个字段是 hWnd,当调用成员函数 create() 时,创建的窗口的 HWND 存储在那里。我重载了 (HWND) 强制转换以返回该值:

当我尝试为我创建的第一个主窗口创建子窗口时,我的程序开始崩溃,我将其跟踪到类型转换返回的奇数值。我定义了一个典型的 getter 函数 getHwnd(),它可以正常工作,但类型转换只会返回垃圾。有什么我想念的吗?

类定义:

调用示例:

0 投票
3 回答
19734 浏览

c++ - 无法将参数从“const char [20]”转换为“LPCWSTR”

编译此代码时:

我得到编译器错误:

错误 C2664:“MessageBoxW”:无法将参数 2 从“const char [20]”转换为“LPCWSTR”1> 指向的类型不相关;转换需要 reinterpret_cast、C-style cast 或 function-style cast

我究竟做错了什么?

0 投票
4 回答
277 浏览

c++ - C++ 的性能问题(使用 VC++ 2010):在运行时,我的程序似乎随机等待一段时间

我目前正在尝试为车辆路线问题编写某种动态编程方法。在某个时刻,我有一个部分路由,我想将它添加到 minmaxheap 中,以便将最好的 100 个部分路由保持在同一阶段。大多数程序运行顺利,但是当我真的想将部分路由插入堆时,事情往往会有点慢。该特定代码如下所示:

一个典型的输出是这样的:

我知道当这个块使用在其他地方实现的函数时,很难对代码说些什么,但我很惊讶为什么这有时需要不到一毫秒,有时需要长达 16 毫秒。程序应该执行这个块数千次,所以这些小问题确实大大减慢了速度。

我唯一的猜测是,存储所有这些状态的堆类中的向量发生了一些事情,但是我使用 vector::reserve 在构造函数中为 100 个项目保留了位置,所以我看不出这仍然是一个问题。

谢谢!

0 投票
2 回答
7488 浏览

multithreading - C++ 多线程与 Visual Studio Express 2010 表单应用程序

我正在开发一个 Windows 窗体应用程序,它连接到一个硬件,获取大量数据(~1 GSample/sec),处理它,并在单击按钮时将其吐出到屏幕上。我现在正在尝试在一个可以随时启动/停止的循环中自动化该过程,以便我可以在调整采集硬件的输入的同时对其进行监控。我认为很明显我需要在一个单独的线程上执行此操作,但我有一段时间尝试在 c++/cli 中执行此操作 - 我找到了许多使用 MFC 的好示例,这些示例不受支持表达。

具体来说:我的任务是按下在 Form1.h 中处理的按钮,在我的主文件 Acquisition.cpp 中调用一个函数,其中包含以下代码(当前是无限循环)

我希望在单独的线程中执行此代码,以便主程序可以侦听用户请求以停止操作。在没有线程的情况下,我目前必须强制退出程序(或将其设置为运行固定次数)才能停止它。

有什么建议我可以如何在单独的线程上运行此代码吗?

我已经(不成功)尝试了一些事情:

  1. 修改此 Microsoft 示例中给出的示例。问题:需要/clr:oldSyntax选项,该选项与程序中的其他 1300 行代码不兼容。

  2. 尝试做我在 Java 中所做的事情(声明一个全局线程并从代码中的任何位置启动/停止它。问题:编译器不会让我声明一个全局 System::Threading.Thread

  3. 这个美丽的例子。问题:需要 MFC。

任何建议将不胜感激!

0 投票
2 回答
4783 浏览

c - 为什么语法正确时VS2010会给出语法错误?

我在使用 VS2010(和 VS2008)时遇到问题,给出了一个很好的语法错误列表。但是,语法确实是正确的。这是一个小例子;

我在 .h 文件中有以下代码块

LIST 是一个类型定义的结构,仅供参考。所有这些函数声明似乎都是正确的语法。然而,在尝试构建时,我从第一个 bool 函数开始出现以下语法错误,顺着列表向下。

错误 2 错误 C2059:语法错误:';'

我看不出问题出在哪里。同样,这只是一个小例子。我还收到如下语法错误

错误 29 错误 C2065:'bool':未声明的标识符

我真的迷失了这一点。这里发布的代码不是我自己的,它来自一本数据结构书,但看起来还是正确的。任何帮助,将不胜感激。谢谢!

0 投票
2 回答
7131 浏览

visual-c++ - 如何在 64 位 C++ 代码中使用暂停汇编指令?

由于 VC++ 2010 不支持 64 位代码中的内联汇编,我如何在我的pause代码中获取 x86-64 指令?这似乎没有像许多其他常见的汇编指令(例如,、等)那样的内在__rdtsc()函数__cpuid()

在为什么方面,我希望该指令有助于处理繁忙的等待用例,以便(超线程)CPU 可用于在所述 CPU 上运行的其他线程(请参阅: intel.com 上的Performance Insights)。该pause指令对于这个用例以及自旋锁实现非常有帮助,我不明白为什么 MS 没有将它作为内在函数包含在内。

谢谢

0 投票
3 回答
10590 浏览

visual-c++ - 如何在 Visual Studio 2010 中使用 flex 和 bison?

我已阅读http://msdn.microsoft.com/en-us/library/aa730877%28vs.80%29.aspx但此文档适用于 VS 2005。我坚持“在 Visual 中导入 .rules 文件”部分C++' 在文档中。VS 2010 似乎不支持 .rules 文件,相反,它似乎使用 .targets 文件来自定义构建规则。

有谁知道如何在 VS 2010 中使用 flex 和 bison?谢谢。

0 投票
1 回答
222 浏览

visual-c++ - VC++ 2010 中的命令行参数

命令行参数在每个字符后都为空假设我从命令提示符调用程序,如“abc.exe 测试数据”,然后在内存中每个字符后都有一个空格,数据是“test.data”有什么问题。它只打印第一个字符而不是完整的字符串“test”有什么问题。int _tmain(int argc, _TCHAR* argv[]) { printf("Argc %d %s",argc,argv[1]); 返回0;}

0 投票
3 回答
1474 浏览

visual-studio-2010 - 我可以在已经安装了 Visual Studio 2010 Professional 的情况下安装 Visual C++ 2010 Express Edition 吗?

我想这样做是因为 clr 控制台应用程序的智能感知选项在 Visual Studio 2010 中不起作用。