我正在尝试使用visual c++ Express2010编译一个64位的vc++项目。我知道64位编译器不是默认安装的vc++ express,所以我按照这里的说明安装了windows sdk for windows7 (),据我所知,它包括64位编译器。但是,在vc++的配置管理器中仍然没有64位选项。经过一番搜索,我找到并完成了本教程()以及此页面底部的各种链接。尽管我做了很多努力,我仍然不能让64位编译器在vc++中显示出来。我也尝试过重新安装vc++和sdk。如果任何人有任何经验/提示,让这个工作,我将非常感谢。仅供参考-我运行的是Windows7(X64)。
我对C夏普和C++有很好的了解。但我对COM编程完全陌生。我正在将一些代码从VC++转换为C#。但是,VC++代码涉及许多COM关键字,如STDMETHODIMP、 __declspec、HRESULT以及其他COM编程概念。我不明白这些通讯终端是什么。但是,由于我可以理解C++,所以我能够理解VC++代码中涉及的逻辑,并将该逻辑转换为C#实现,而忽略了COM术语。
Some functions in my VC++ code are having the returning type **STDMETHODIMP** and they are just returning *
我正在通过我的安装程序安装Visual C++ Redistributable 2013作为先决条件(如果还没有安装)。但有时已经安装的VC++损坏了,那么我的安装程序就不能工作了,因为我在CustomAction中调用了DLL函数。
所以我的问题是:有没有办法发现安装的VC++可再发行文件是否已损坏?
我在编译一些旧的VC++ 6.0源代码时遇到了这个错误。
error C2632: 'long' followed by 'long' is illegal
代码中有一部分声明了一个很长的整型变量,这导致了错误。有人知道如何在VC++ 6.0中编译修复这个错误吗?我到处寻找,我读到这个版本还不支持这个数据类型。但是,这是一段旧代码,我确信这是在VC++ 6.0中编译的。
我有这样的代码:
class A
{
public:
unsigned long a;
static const unsigned long b = sizeof(a); // "error C2327: 'A::a' : is not a type name, static, or enumerator" in VC++
};
我在VC++中有编译器错误,在IAR中没有错误。哪个编译器是对的,C++标准是怎么说的?