我一直在阅读关于C99和C++ 11以及所有这些非常甜蜜的东西,它们被添加到语言标准中,有一天可能会很好用.但是,我们目前正处于在Visual Studio中编写C++的过程中.
标准中的任何新东西是否会被添加到visual studio中,或者微软是否更有兴趣添加新的C#变体来做到这一点?
编辑:除了接受的答案,我找到了Visual C++团队博客:
具体来说,这篇文章在其中:
http://blogs.msdn.com/vcblog/archive/2008/02/22/tr1-slide-decks.aspx
很有用.谢谢!
有没有办法用visual studio禁用cpp文件中的单个警告线?
例如,如果我捕获异常并且不处理它,则会收到错误4101(未引用的局部变量).有没有办法在该函数中忽略它,否则在编译单元中报告它?此刻,我放在#pragma warning (disable : 4101)文件的顶部,但显然只是将它关闭整个单元.
什么区别LPCSTR,LPCTSTR和LPTSTR?
为什么我们需要这样做才能将字符串转换为LV/ _ITEMstructure变量pszText:
LV_DISPINFO dispinfo;
dispinfo.item.pszText = LPTSTR((LPCTSTR)string);
Run Code Online (Sandbox Code Playgroud) 这是我在Eclipse(Ctrl+ Tab)中习惯使用的一个功能.Visual C++中是否有等价物?
用于VC++的Visual Studio IntelliSense包括"完整的" EDG C++解析器(也被英特尔和其他人使用).由于插件可以访问C#Code DOM(如果我错了,请纠正我),C++ Code DOM是否也可以访问?这可以用于分析VS环境中的开放VC++项目吗?
我想要一个从C++ windows DLL导出函数的简单示例.
我想看看标题,cpp文件和def文件(如果绝对需要).
我希望导出的名称不加修饰.我想使用最标准的调用约定(__stdcall?).我想使用__declspec(dllexport)而不必使用DEF文件.
例如:
//header
extern "C"
{
__declspec(dllexport) int __stdcall foo(long bar);
}
//cpp
int __stdcall foo(long bar)
{
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我试图避免链接器为名称添加下划线和/或数字(字节数?).
我没有支持使用相同标头的dllimport和dllexport.我不想要任何有关导出C++类方法的信息,只需要c风格的全局函数.
UPDATE
不包括调用约定(并使用extern"C")给出了我喜欢的导出名称,但这意味着什么?是什么默认调用约定我得到什么pinvoke(.NET),声明(vb6)和GetProcAddress会期望?(我猜对于GetProcAddress,它将取决于调用者创建的函数指针).
我希望在没有头文件的情况下使用这个DLL,所以我真的不需要很多花哨的#defines来使调用者可以使用头文件.
我的回答是我必须使用DEF文件.
我有一个依赖外部DLL文件的Visual Studio C++项目.在构建项目时,如何使Visual Studio自动将此DLL文件复制到输出目录(调试/发布)?
我试图找出用于在我的计算机上编译Python的Visual Studio版本
它说
Python 2.6.2 (r262:71605, Apr 14 2009, 22:40:02) [MSC v.1500 32 bit (Intel)] on win32
Run Code Online (Sandbox Code Playgroud)
我不明白的是这个MSC V.1500名称.这是否意味着它是使用Visual Studio 2005编译的?我在http://python.org上找不到这些信息.
Visual Studio 2012的预览版(VS2010之后的下一个版本)现已推出.
有谁知道它支持哪些新的C++ 11功能?(我现在无法试一试).
我正在将一个最初为Win32 API编写的游戏移植到Linux上(好吧,将Win32端口的OS X端口移植到Linux).
我已经QueryPerformanceCounter通过在进程启动后给出uSeconds来实现:
BOOL QueryPerformanceCounter(LARGE_INTEGER* performanceCount)
{
gettimeofday(¤tTimeVal, NULL);
performanceCount->QuadPart = (currentTimeVal.tv_sec - startTimeVal.tv_sec);
performanceCount->QuadPart *= (1000 * 1000);
performanceCount->QuadPart += (currentTimeVal.tv_usec - startTimeVal.tv_usec);
return true;
}
Run Code Online (Sandbox Code Playgroud)
这一点,加上QueryPerformanceFrequency()给出一个恒定的1000000作为频率,在我的机器上工作得很好,给我一个包含uSeconds自程序启动以来的64位变量.
所以,这是便携式?如果内核是以某种方式或类似的方式编译的,我不想发现它的工作方式不同.不过,我很好,因为它不适用于Linux之外的其他东西.