编译器:Visual C++ 2012 RTM
是不是有错误?:https://connect.microsoft.com/VisualStudio/feedback/details/763601/visual-c-2012-rtm-serious-compiler-bug
对我来说,似乎很奇怪它会将test()内联到第二个std :: cout语句中.
我使用的是Visual C++ 2010,代码是:
#include "stdafx.h"
#include <stdio.h>
int _tmain(int argc, _TCHAR* argv[]) {
printf("step 0: %s\n", argv[0]);
int d;
scanf("%d",&d);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我选择_UNICODE时,输出为"D",当我选择_MBCS时,它运行良好,输出为"D:\ VCTest\c1006.exe"
为什么在_UNICODE中出错?如何为_UNICODE和_MBCS使用相同的代码?
假设您有一个枚举类型,其值为50多个条目.曾经有一段时间我曾用这个数量的条目切换/设置枚举值,但仅用于检查,例如,从中检查2到5个条目.
例如,OpenGL将其大多数枚举粘贴在一个枚举类型中,称为GLenum.这些值的范围从GL_VERTEX_SHADERto GL_STREAM_DRAW到GL_TRIANGLESto GL_ARRAY_BUFFER等.
正如您所看到的,虽然这些与更大的图景有关,但它们的使用环境并不相互关联.
我在Linux中的MinGW/GCC上生成了警告,其中每个警告都记录了其类型声明中列出的每个枚举值.我不确定VC++上是否会发生这种情况,但我认为无论如何我都会考虑它以防万一.
换句话说,生成的警告数量是TotalEnumValues - AmountOfCaseStatements针对每个枚举值,前提是并非所有枚举都已在语句本身中进行了说明,如果您的枚举类型包含至少100个条目,则很容易导致100多个编译器警告.
我经常使用if/else来容纳这个,但是当检查枚举值超过一个条目时(这实际上非常罕见,因为枚举的目的通常需要条件逻辑来补充它),我一直都是容易使用开关/外壳,因为我发现它更美观(即使它只是编译成if/else语句,无论如何;))
那么,这个警告是否可以关闭?如果是这样,怎么样?
我使用了Microsoft的Credential Provider示例来组合默认Windows 7登录屏幕的包装器.
就新的CP而言,所有内容似乎都运行良好,但我的登录屏幕上出现了重复的图块,即默认的Windows图块和我的"包装"图块.
如何删除默认的Windows磁贴,因为这不包含我的更改?
我在一个项目中使用VC++ 10.作为C/C++的新手,我只是谷歌搜索,似乎在标准C++中没有正则表达式?VC++ 10似乎有正则表达式.但是,我如何进行正则表达式拆分?我是否需要提升?
在网上搜索,我发现许多人推荐使用Boost进行许多操作,标记/拆分字符串,解析(PEG),现在甚至是正则表达式(尽管这应该是内置的......).我能否得出结论提升是必须的?它的180MB只是琐碎的东西,在许多语言中天真地支持?
我使用以下c ++代码从kinect中读出深度信息:
BYTE * rgbrun = m_depthRGBX;
const USHORT * pBufferRun = (const USHORT *)LockedRect.pBits;
// end pixel is start + width*height - 1
const USHORT * pBufferEnd = pBufferRun + (Width * Height);
// process data for display in main window.
while ( pBufferRun < pBufferEnd )
{
// discard the portion of the depth that contains only the player index
USHORT depth = NuiDepthPixelToDepth(*pBufferRun);
BYTE intensity = static_cast<BYTE>(depth % 256);
// Write out blue byte
*(rgbrun++) = intensity; …Run Code Online (Sandbox Code Playgroud) void * ptr0 = (void*)"Buffer_1";
int size0 = sizeof(ptr0);
// WILL THIS RETURN THE NUMBER OF BYTES OCCUPIED BY THE MEMORY POINTED BY ptr0?
Run Code Online (Sandbox Code Playgroud)
我的要求是
1)在缓冲区中存储一些数据并创建一个void*指针,我在第一行做.
2)后来我想在BYTES中获得这个缓冲区的大小.第二行将完成这项工作.
所以,我正在制作一个我希望有一个函数来生成随机数的DLL.我想知道哪些选项更有效(性能明智).
这个只是在DLL中创建一个函数,允许我得到一个随机数.
int getRand(unsigned int seed) {
int rNum; // Random Number.
srand(seed);
rNum = (rand() % // Whatever I need here.
}
Run Code Online (Sandbox Code Playgroud)
或者,只是使用srand(time(nullptr))和rand()在应用程序中性能更好?
谢谢,
约翰尼P.
我可以ref在删除对象后使用,如本例所示还是不安全?
struct Object
{
int value;
};
void function()
{
Object* object = new Object();
int& ref = object->value;
delete object;
ref = 50;
}
Run Code Online (Sandbox Code Playgroud) //libraries
#include <iostream>
//standard namepace
using namespace std;
int Car() {
int a;
int b;
cout << "Fuel Tank" << endl;
cin >> a;
cout << "MPG" << endl;
cin >> b;
return a, b;
}
int main() {
int a;
int b;
a,b = Car();
cout << "Print Values " << (a,b); // <--- Line 25
return 0;
}
Run Code Online (Sandbox Code Playgroud)
假设您将 10 和 15 作为第一个和第二个输入。为什么 15 是cout第 25 行语句中唯一要打印的变量。
visual-c++ ×10
c++ ×8
c ×2
dll ×1
enumeration ×1
kinect ×1
performance ×1
pointers ×1
random ×1
sizeof ×1
windows-7 ×1
winlogon ×1