C++/CLI与托管代码是一回事么?他们和传统C++哪个更标准?
各位,小弟最近由于一个项目需要用C++开发一个DLL,才开始研究C++的,看了许多教程,发现了不少疑惑(我使用的开发环境是Visual Studio 2008)
1.教程中写的是#include<iostream.h>,但是调试不通过,必须要改为#include<iostream>
2.因为想把getch()放在return 0前来查看输出,所以要包含conio.h,但是好像必须写成#include"conio.h",为什么这个头文件却不可以用尖括号?而且我记得许多年前学习C++时包含的好像是stdio.h而不是conio.h啊?
3.教程上完全没有任何using,但是调试的时候发现必须写using std::cout;using std::endl;等等才能正常使用cout、endl等,为什么教程上可以没有呢?
4.关于输出语句,有的用printf,有的用cout,前面两种好歹我学过,后来看资料居然还有用system.out.print的,这到底是怎么回事啊?
5.调试时用到了HINSTANCE hinst=::LoadLibrary("dll_nolib.dll");但是有的资料说参数要加_T("dll_nolib.dll"),有的资料说参数要写成L"dll_nolib.dll"的形式,前面有个字母L,搞得我都不知道是怎么回事了。另外顺便问问这个函数名称前面有两个冒号是什么意思?
后来我查了很多资料,似乎意思是现在都C++/CLI了,从VS2005开始对C++使用了托管代码,又似乎说托管代码必须在有.NET的机器上才能运行。但是我还是不太清晰,C++/CLI是个什么东西,它跟托管代码是不是一回事呢?上面说到的这些代码的变化是不是因为变成C++/CLI引起的?最标准的C++究竟是他们还是传统的C++呢?我不想使用.NET库也不想托管代码,只想编译出的*.exe文件是直接在机器上就能运行的,应该怎么做,相关的语法规则是哪些,调试环境应该怎么建立?只有使用VC6.0才可以么(我昨晚为这个刚刚装了VC6.0的)?