stdafx.h我在Visual Studio 2010中启动项目时会自动生成一个名为的文件.我需要创建一个跨平台的C++库,所以我不能/不能使用这个头文件.
什么stdafx.h用于?我可以删除这个头文件吗?
cross-platform visual-studio-2010 stdafx.h visual-studio visual-c++
编写我编写的C++程序时遇到一些困难.
这个程序非常简单,据我所知,它符合C++标准中规定的所有规则.我已经两次阅读整个ISO/IEC 14882:2003以确定.
该计划如下:

这是我尝试使用Visual C++ 2010编译此程序时收到的输出:
c:\dev>cl /nologo helloworld.png
cl : Command line warning D9024 : unrecognized source file type 'helloworld.png', object file assumed
helloworld.png : fatal error LNK1107: invalid or corrupt file: cannot read at 0x5172
Run Code Online (Sandbox Code Playgroud)
沮丧,我尝试了g ++ 4.5.2,但同样无益:
c:\dev>g++ helloworld.png
helloworld.png: file not recognized: File format not recognized
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
我认为Clang(版本3.0主干127530)必须工作,因为它的标准一致性受到高度赞扬.不幸的是,它甚至没有给我一个漂亮的,突出显示的错误消息:
c:\dev>clang++ helloworld.png
helloworld.png: file not recognized: File format not recognized
collect2: ld returned 1 exit status
clang++: error: linker (via gcc) command …Run Code Online (Sandbox Code Playgroud) 我想知道我是否可以安全地删除存储Visual Studios Intellisense信息的sdf文件 - 它是否会在下次打开解决方案时重建?
这样做我会失去什么吗?是否有可能以这种方式打破解决方案?
这样做的动机是通过存储多个小项目 - 每个sdf文件大小或多或少20Mb,这相当于显着的磁盘空间量.
在Visual Studio中,我们都有"baadf00d",在运行时在C++中检查调试器中的变量时看到过"CC"和"CD".
根据我的理解,"CC"仅处于DEBUG模式,以指示内存何时是new()或alloc()并且是单元化的."CD"代表删除或免费内存.我在RELEASE版本中只看过"baadf00d"(但我可能错了).
偶尔会遇到内存泄漏,缓冲区溢出等问题,这些信息会派上用场.
是否有人能够指出何时以何种模式将内存设置为可识别的字节模式以进行调试?
我开始使用Visual C++,我想知道如何保持控制台窗口.
例如,这将是典型的"hello world"应用程序:
int _tmain(int argc, _TCHAR* argv[])
{
cout << "Hello World";
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我错过的是什么?
我正在使用CUDA(VC++,Visual studio 2008sp1)来调试FEM程序.由于cuda的不足,该程序只能在Win32平台上运行.我认为链接的库文件都是在x86平台上编译的,但是当我编译它时,我收到错误消息"致命错误LNK1112:模块机器类型'x64'与目标机器类型'X86'冲突".
我试图将平台转换为x64,但它没有用.请告诉我:什么是"模块机器类型"什么是"目标机器类型"?我怎么能克服它?
哪个Visual Studio\Visual C++文件类型应该提交到版本控制?
在我的项目中,我有以下文件类型:
aps
cpp
exe
filters
h
ico
idb
ipch
lastbuildstate
lib
log
manifest
obj
pch
pdb
rc
rc2
res
sdf
sln
suo
tlog
txt
user
vcxproj
Run Code Online (Sandbox Code Playgroud)
我非常感谢每个人的简短推理.如果其中任何一个存在争议,请注意.为了完整性,我故意包括甚至是琐碎的文件类型.
编辑
一方面,我希望将来能够独立于平台.另一方面,在不久的将来,我想与具有类似设置的团队成员合作.设置之间的文件夹兼容性当然是一种选择,因此如果简化工作流程,则可以包含保存路径的配置文件.
再一次,我肯定会感谢解释什么是什么.
在Visual Studio中编码期间,我得到了一个未解决的外部符号错误,我不知道该怎么做.我不知道出了什么问题.你能破译我吗?我应该在哪里寻找什么样的错误?
1>Form.obj : error LNK2019: unresolved external symbol "public: class Field * __thiscall Field::addField(class Field *)" (?addField@Field@@QAEPAV1@PAV1@@Z) referenced in function "public: void __thiscall Form::parse(class std::basic_stringstream<char,struct std::char_traits<char>,class std::allocator<char> > &)" (?parse@Form@@QAEXAAV?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
1>Form.obj : error LNK2019: unresolved external symbol "public: virtual void __thiscall Field::parse(class std::basic_stringstream<char,struct std::char_traits<char>,class std::allocator<char> > &)" (?parse@Field@@UAEXAAV?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) referenced in function "public: __thiscall InputField::InputField(class std::basic_stringstream<char,struct std::char_traits<char>,class std::allocator<char> > &)" (??0InputField@@QAE@AAV?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
1>Form.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall Field::prompt(void)" (?prompt@Field@@UAEXXZ)
1>Form.obj : error LNK2001: unresolved external …Run Code Online (Sandbox Code Playgroud) #pragma comment以下是什么意思?
#pragma comment(lib, "kernel32")
#pragma comment(lib, "user32")
Run Code Online (Sandbox Code Playgroud) 我在看看$(Configuration),$(ProjectDir)等在Visual Studio 2008的预生成事件.
是否存在所有这些变量的链接以及每个变量的定义?
visual-c++ ×10
c++ ×3
clang ×1
console ×1
debugging ×1
file-type ×1
intellisense ×1
macros ×1
msbuild ×1
pragma ×1
stdafx.h ×1
visual-c++-6 ×1