问题标签 [vc10]

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 回答
755 浏览

c++ - 枚举窗口不工作

我正在创建一个 dll 文件。

我的代码:

然后我就打电话test()

在日志中,titlas为空并且代码停止。

当我在带有 CodeBlock 的 Win32 应用程序中尝试此代码时,一切正常,所有标题都显示。但是在dll中,它不起作用。

哪里有问题?

0 投票
1 回答
48 浏览

visual-studio-2010 - 如何使用 VS10 构建提升

我在使用 VC 编译 Boost 时遇到问题:错误:LNK1104:无法打开文件“libboost_regex-vc100-mt-gd-1_53.lib”

最有趣的是仅使用 VC10 编译器才能观察到该问题。MinGW 成功构建 Boost 正则表达式。

有人知道如何解决吗?

PS:我不能使用b2,bjam等,因为我已经使用bcp模块检索了boost regex的一部分,我需要使用VC10和CMake编译它。

0 投票
2 回答
998 浏览

c++ - 警告 C4481 在限定名称中使用的枚举“MyEnum”中使用了非标准扩展

我正在尝试从我正在处理的课程中删除警告。

警告如下:

警告 C4482:使用了非标准扩展:限定名称中使用了枚举“MyEnum”

我了解警告是由于尝试访问枚举中的值之一引起的,如下所示:

仅供参考: SomeFunc() 存在于 .cpp 文件中,但枚举在 C 头文件中声明。

所以我可以删除警告的一种方法是用 Value1 替换 MyEnum::Value1。但是,我更愿意使用 MyEnum::Value1 来引用枚举值,因为我喜欢它更明确。

因此,如果我只使用 C++,我可以像这样更改枚举:

但是枚举存在于 C 头文件中,因此我无法将枚举包装在命名空间中。我也无法将枚举移动到 C++ 头文件中,因为其他文件已经依赖于枚举。

我考虑的一种方法是将枚举包装在一个结构中:

这将允许我使用 MyEnum::Value1 访问值而不会发出警告。

但是,有没有更好的方法来实现这一点?

此外,我还遇到过枚举存在于 C++ 文件中但其作用域为类的情况:

我不想将它移出类,因为类提供了枚举的封装,但我也不能将枚举包装在命名空间中,因为类声明中不允许命名空间。在这种情况下是否有更好的方法来实现相同的行为 (MyEnum::Value1) 而不会发出相同的警告?

FYI2:我仅限于 vc10 允许的实现。