在评估Visual Studio 2010 Beta 2时,我看到在转换后的目录中,我的vcproj文件变成了vcxproj文件.每个项目旁边还有vcxproj.filter文件,它们似乎包含文件夹结构的描述(\ Source Files,\ Header Files等).
您是否认为这些过滤器文件应该按用户保留,还是应该在整个开发组中共享并检入SCC?
我目前的想法是检查它们,但我想知道是否有任何理由不这样做,或者也许是我应该检查它们的好理由.
显而易见的好处是,如果我正在查看其他人的机器,文件夹结构将匹配,但也许他们想要在逻辑上重新组织事物?
c++ version-control visual-studio-2010 visual-studio visual-c++-2010
我在安装我见过的互联网上发布的Windows SDK时遇到了一个错误,但没有一个解决方案适合我.这是我得到的日志
9:43:37 AM Monday, October 14, 2013: SFX C:\Program Files\Microsoft SDKs\Windows\v7.1\Setup\SFX\vcredist_x64.exe installation started with log file C:\Users\clarkbd\AppData\Local\Temp\Microsoft Windows SDK for Windows 7_c3c42538-8a3e-439d-be39-aee3078ca098_SFX.log
9:43:43 AM Monday, October 14, 2013: C:\Program Files\Microsoft SDKs\Windows\v7.1\Setup\SFX\vcredist_x64.exe installation failed with return code 1603
9:43:53 AM Monday, October 14, 2013: [SDKSetup:Error] Config_Products_Install: Installation of Product Microsoft Windows SDK for Windows 7 (failed): Please refer to Samples\Setup\HTML\ConfigDetails.htm document for further information. Stack: at SDKSetup.Product.ConfigureRelatedSfx() at SDKSetup.Product.ConfigureNewProduct(ManualResetEvent CancelEvent)
9:43:53 AM Monday, October 14, 2013: [SDKSetup:Info] Config_Products_InstallNew: End installation …Run Code Online (Sandbox Code Playgroud) 我刚刚被Visual Studio 2010(C++)发出的一些非平凡的警告殴打(而不是很难).
编译给出了以下输出:
1 Debug\is.obj:警告LNK4042:对象指定多次; 附加项忽略
1 Debug\make.obj:警告LNK4042:对象指定多次; extras忽略
1 Debug\view.obj:警告LNK4042:对象指定多次; extras忽略
1 identity.obj:错误LNK2019:未解析的外部符号void __cdecl test::identity::view(void)(?view @ identity @ test @@ YAXXZ)在函数中引用void __cdecl test::identity::identity(void)(?identity @ 0test @@ YAXXZ)
1 identity.obj:错误LNK2019:未解析的外部符号void __cdecl test::identity::make(void)(?make @ identity @ test @@ YAXXZ)在函数中引用void __cdecl test::identity::identity(void)(?identity @ 0test @@ YAXXZ)
1 range.obj:错误LNK2019:未解析的外部符号void __cdecl test::range::is(void)(?是@ range @ test @@ YAXXZ)在函数中引用void __cdecl test::range::range(void)(?range @ 0test @@ YAXXZ)
链接器错误总是很难调试...但是有未解决的引用,所以我检查了......但是源代码是格式良好的......最后它击中了我:
我的文件夹层次结构如下:
src/
identity/
is.cpp
make.cpp
view.cpp
range/ …Run Code Online (Sandbox Code Playgroud) c++ visual-studio-2010 visual-studio visual-c++ visual-c++-2010
编译下面的代码时,我在VC2010中遇到错误C2078.
struct A
{
int foo;
double bar;
};
std::array<A, 2> a1 =
// error C2078: too many initializers
{
{0, 0.1},
{2, 3.4}
};
// OK
std::array<double, 2> a2 = {0.1, 2.3};
Run Code Online (Sandbox Code Playgroud)
我发现正确的语法a1是
std::array<A, 2> a1 =
{{
{0, 0.1},
{2, 3.4}
}};
Run Code Online (Sandbox Code Playgroud)
问题是:为什么需要额外的括号a1但不是必需的a2?
更新
这个问题似乎并不特定于std :: array.一些例子:
struct B
{
int foo[2];
};
// OK
B meow1 = {1,2};
B bark1 = {{1,2}};
struct C
{
struct
{
int a, b;
} …Run Code Online (Sandbox Code Playgroud) 我可以将Visual C++ 2010 Express编译器用于商业用途吗?据我所知,它在2010版本之前总是被允许,但是现在当我启动IDE时,它写了"仅用于评估目的".我无法在任何地方找到完整的许可证文件(不是在已安装的文件中,而是在Google中),所以我有疑问,我应该使用它,还是应该降级到MSVC++ 2008版本.
我的代码中有这个问题:
bool CBase::isNumber()
{
return (id & MID_NUMBER);
}
bool CBase::isVar()
{
return (id & MID_VARIABLE);
}
bool CBase::isSymbol()
{
return (id & MID_SYMBOL);
}
Run Code Online (Sandbox Code Playgroud) 当我发现我只能在C++的switch语句中使用数值时,我认为那里必须有一些更深的区别if-else.
所以我问自己:
switch有所不同if-elseif-elseif?我这里主要谈的是MSVC.c++ if-statement switch-statement visual-c++ visual-c++-2010
在C++ 0x(在VS2010下)使用lambda表达式是否有任何开销?
我知道使用函数对象会产生开销,但我指的是传递给STL算法的表达式.编译器是否优化了表达式,消除了看起来像函数调用的东西?我开始非常喜欢lambda表达式,但我有点担心速度惩罚.
提前致谢!
使用带有-g选项的 g ++ ,我可以使用gdb进行调试.
与Visual Studio 2010 cl.exe编译器相同的是什么?
此页面具有用于链接的不同库(调试/发布).
如果我使用cl.exe编译调试选项,是否必须使用相应的库链接选项(/ MD/MT vs/MDd/MTd)?
debugging compiler-options visual-studio visual-c++ visual-c++-2010
我经常发现自己处于需要缩进预处理程序指令的情况,例如其他代码(例如#if缩进if).它似乎是合法的,这是常识,它有时是一件好事,但Visual不会让它变得容易.
有没有办法阻止Visual C++ 2010编辑器每次我无辜地按下时将代码粘贴到左边#?并且不要使用自动缩进(CTRL + K,CTRL + F)来破坏预处理程序指令缩进?或者更好的是,像其他一样处理预处理器指令?
c++ indentation visual-c++-2010 c-preprocessor preprocessor-directive
visual-c++-2010 ×10
c++ ×7
visual-c++ ×4
c++11 ×2
debugging ×1
if-statement ×1
indentation ×1
lambda ×1
sdk ×1
windows ×1