C++和Visual C++有什么区别?
我知道C++具有可移植性和所有,所以如果你知道C++它与Visual C++有什么关系?Visual C++主要用于在线应用吗?Visual Basic会更好地用于桌面应用程序吗?
以下代码(取自此处):
int* ptr = int();
Run Code Online (Sandbox Code Playgroud)
在Visual C++中编译并对指针进行值初始化.
怎么可能?我的意思是int()产生一个类型的对象,int我不能指定int一个指针.
上面的代码如何不违法?
我正在使用Microsoft Visual Studio 2011 Professional Beta
我正在尝试运行我使用cMake和Visual Studio Complier编译的OpenCV C++文件(http://opencv.willowgarage.com/wiki/Welcome).
然而,当我去调试项目时,我得到600多个错误,其中大多数是:
错误LNK2026:SAFESEH映像的模块不安全.
显然这些文件在opencv_ffmpeg项目中,但我找不到它们,我已经看过Microsoft帮助页面上的safeseh安全异常处理程序页面,但我找不到任何确定的答案.
我想知道是否有其他人有这个问题,如果他们设法解决它.
编译以下代码:
double getDouble()
{
double value = 2147483649.0;
return value;
}
int main()
{
printf("INT_MAX: %u\n", INT_MAX);
printf("UINT_MAX: %u\n", UINT_MAX);
printf("Double value: %f\n", getDouble());
printf("Direct cast value: %u\n", (unsigned int) getDouble());
double d = getDouble();
printf("Indirect cast value: %u\n", (unsigned int) d);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出 (MSVC x86):
INT_MAX: 2147483647
UINT_MAX: 4294967295
Double value: 2147483649.000000
Direct cast value: 2147483648
Indirect cast value: 2147483649
Run Code Online (Sandbox Code Playgroud)
输出 (MSVC x64):
INT_MAX: 2147483647
UINT_MAX: 4294967295
Double value: 2147483649.000000
Direct cast value: 2147483649
Indirect cast value: …Run Code Online (Sandbox Code Playgroud) 当我尝试在Win32或x64模式下使用Visual Studio 2010编译我的c ++项目时,我收到以下错误:
>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winnt.h(135): fatal error C1189: #error : "No Target Architecture"
我的预处理器定义说WIN32; _DEBUG; _CONSOLE;%(PreprocessorDefinitions)
导致此错误的原因是什么?如何解决?
// winnt.h: lines 127-136, MSVS says this is an inactive preprocessor block
#if defined(_WIN64)
#if defined(_AMD64_)
#define PROBE_ALIGNMENT( _s ) TYPE_ALIGNMENT( DWORD )
#elif defined(_IA64_)
#define PROBE_ALIGNMENT( _s ) (TYPE_ALIGNMENT( _s ) > TYPE_ALIGNMENT( DWORD ) ? \
TYPE_ALIGNMENT( _s ) : TYPE_ALIGNMENT( DWORD ))
#else
#error "No Target Architecture"
#endif
Run Code Online (Sandbox Code Playgroud)
更新:我创建了一个新的msvs项目并将我的代码复制到它.我不再拥有error : "No Target Architecture",但现在我有一堆涉及winnt.h和winbase.h的编译错误,并且没有涉及我的任何文件的编译错误.这些文件是否可能已损坏?我需要重新安装MSVS 2010吗?
更新2:所以我缩小了我的问题,发现它 …
我正在将代码从Linux C移植到Visual C++ for windows.
Visual C++不知道#include <stdint.h>所以我评论了它.
后来,我发现了很多这些'uint32_t': identifier not found错误.怎么解决?
我看到了像这样的Qt源代码:
class Q_CORE_EXPORT QBasicAtomicInt
{
public:
...
};
Run Code Online (Sandbox Code Playgroud)
哪个Q_CORE_EXPORT宏定义如下:
define Q_DECL_IMPORT __declspec(dllimport)
Run Code Online (Sandbox Code Playgroud)
那__declspec(dllimport)真正意味着什么?
我试图在VS 2010中使用OpenCV.我是业余爱好者,我正在学习OpenCV维基的第一步.但是,在尝试调试我的项目时,我收到以下错误:
'C:\ Windows\SysWOW64 \ntdll.dll',无法找到或打开PDB文件'C:\ Windows\SysWOW64\kernel32.dll',无法找到或打开PDB文件'C:\ Windows\SysWOW64\kernellbase. dll',无法找到或打开PDB文件
我在正确的目录中有这些文件,为什么不能打开它们呢?我该怎么做才能解决这个问题?
在Visual Studio 2008中使用C++进行编程时,为什么在使用C#时没有像重构菜单中看到的那样的功能?
我经常使用Rename,当它不存在时你真的很想念它.我确信你可以获得提供这个的插件,但为什么在使用C++时它没有集成到IDE中?这是否是因为必须解析C++的方式?