❶ 请问初学C#,用什么编译器比较好
如果不用visual c# 2005。就用记事本好了。
基础是靠自己练习的,并不是用哪个编程软件就有好基础。
要想学习好编成的人1年最少要写10000行程序。
如果你写的少,基础不会好。
就算你用vs,一年写1万多行程序,基础也会很好。
❷ VS2005 debug编译和msbuild编译 有什么区别
用aspnet_compiler发布网站在asp.net 2.0模型中,vs2005已经完全脱离了编译而成为了一个彻底的ide.算是一个不小的改动。其中更是取消了有关Web Application的概念,使得习惯了vs2003的人刚开始的时候会有一些摸不着头脑。下面简单说一下我在使用过程中自己总结的,算是一点经验。
新建web工程并且位置是文件系统的时候,vs2005只是帮你建好了一个sln文件,这个东西只是指引msbuild 如何进行编译的,过程是:ide 调用 msbuild ,msbuild解析sln文件,msbuild调用aspnet_compiler.exe进行网站的编译。所以aspnet_compiler.exe只是负责进行网站的编译的。
预编译的概念在 .netframework 1.1 里面就存在了,vs2003中的预编译指的是将页面对应的cs/vb文件与resx文件编译后统一集成到一个dll中放到bin目录下,将aspx文件直接拷贝过去。这样做会留下隐患,因为aspx文件就直接暴露在最后的发行包中,如果完全是codeb-behind模型还好,只能改改界面,如果采用了页面上的来生成页面,源代码就暴露了。针对这些问题,vs2005采用了一种新的模式。
请参看ASP.NET 编译工具 (Aspnet_compiler.exe) 这篇文章了解对各种文件的处理方式。
IDE发布:
vs2005中选择 生成-〉发布网站,在对话框中的操作将映射到aspnet_compiler.exe的参数中,可更新的发布对应 -u,其他选项类似,请参考上面的文章了解。
注意:发布时将忽略web.config中的debug参数,统一生成无调试信息的文件。
手工编译:
简单说来,如果是无更新发布模式编译,appcode下面的class编译成dll放在bin下,页面内容清空位置不变作占位用,同时页面被编译成一个随机名称的dll,增加一个同名.compiled文件到bin目录下,内容大概如下:
<?xml version="1.0" encoding="utf-8"?>
<preserve resultType="3" virtualPath="/Forum/AdminList.aspx" hash="6772609c3" filehash="49154463f1d6738c" flags="110000" assembly="App_Web_hmrycg3w" type="ASP.forum_adminlist_aspx">
<filedeps>
<filedep name="/Controls/footer.ascx" />
<filedep name="/Controls/header.ascx" />
<filedep name="/Forum/AdminList.aspx" />
<filedep name="/Forum/AdminList.aspx.cs" />
<filedep name="/Forum/menu.ascx" />
<filedep name="/Forum/menu.ascx.cs" />
</filedeps>
</preserve>
里面只是列出了页面上的customcontrol,这里已经完成了和masterfile的映射。这样最大限度的保护了页面的敏感信息,发布过的网站中只能看见一堆文件名了。可更新的发布模式与vs2003类似,页面就直接拷贝过来不予编译了。
讲了一堆原理,下面说一下aspnet_compiler.exe的调用方法,这是我使用的例子
我的开发目录是这样的
Project/
library/
devroot/
pubroot/
proj.sln
使用的命令如下:
aspnet_compiler -v / -p .\devroot -f .\pubroot
分析:
-v / 指明了iis的虚拟目录
-p .\devroot 表示代码实际位置
.\pubroot 指明了要发布的位置
-f 表示强制改写目标位置
你还可以用-u来进行传统意义上的预编译,-d来插入编译符号。
总的来说,aspnet_compile结合msbuild,提供了一个很好的自动化编译环境,值得研究研究:)
❸ 请问下,vb6.0和vb2005那个好
各有各的好处:
VB6.0使用方便,编译出来的程序可以直接运行。
vb2003、vb2005、vb2008、vb2010 编译出来的程序需要 framework 的支持,也就是说,在VISTA、WIN7、以及安装了framework的XP、2003等操作系统上都能运行,这个是运行环境的区别。
其次,VB200X 系列的版本,在操作上、开发效率上、数据库支持上都比VB6.0快的多,举个例子,同样是修改程序窗体的透明度,VB6.0还要引用 win32API,
VB200X 系列的版本就不用了,直接调用form1.Opacity就可以了,在数据库方面,VB200X 系列基本上拖拽就可以实现各种数据库的操作,方便至极(当然,VB6也可以写出来,但是没有那么方便)
再比如界面方面,VB200X的界面也比6.0的好看的多……
PS:如果想做个好的程序员,VB6.0一定要学好,其他版本的要会用,技术好了,那种程序语言都好用!
学习是学习编程思想,不是看哪门语言好用,当整个过程清楚了,原理掌握了,再工具不同的环境,选择不同的语言,才是正确的!
❹ vc 6.0 visual stdio 2005学哪个好呢
VC6.0适合初学者用 如果你刚开始学C/C++ 对面向对象的概念不大熟悉 可以用6.0来了解 但到后面关于面向对象程序开发 6.0就显的力不从心了 6.0里开发的是MFC 比较艰涩难懂 而且现在很多学校已经不学MFC了 而vc2005不管从集成开发环境,还是类库 都是先进了许多 2005里的面向对象编程相对容易学 功能强大 如果你对类继承封装有良好的认识 那就2005吧
至于2008 与2005只是新旧问题 不过2005更稳定 许多的企业和高校任然用的2005 毕竟教科书都是按2005编的嘛
❺ 如何使用delphi 编译rtklib
1. 首先在vs2013中新建一个win32的dll项目
2. 在项目上添加一个文件夹[rtklibsrc]然后在文件夹上【添加现有项目】把rtklib的源文件加入工程。在rtklibsrc下建立rcv把rcv下面的文件也添加到工程
3. 现在开始编译工程,你会发现很多错误。下面我们一步步来解决错误。
1> Q: error C1853:
“Debug\rtklibHelper.pch”预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反)
x:\xxxx\rtklibhelper\rtklibsrc\tle.c 1 1 rtklibHelper
A: 不使用预编译头
2> Q: 错误 1 error C4996: 'strncpy': This function or
variable may be unsafe. Consider using strncpy_s instead. To disable
deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for
details. x:\xxxx\rtklibhelper\rtklibhelper\rtklibsrc\tle.c
A: 其实提示上面已经告诉你方法了,需要你加入预编译指令来取消这个错误[_CRT_SECURE_NO_WARNINGS]
3> Q: error C4996: 'gethostbyname': Use getaddrinfo() or
GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to
disable deprecated API warnings
x:\xxxx\rtklibhelper\rtklibsrc\stream.c
A: 这个错误和上面类似,加入[_WINSOCK_DEPRECATED_NO_WARNINGS ]
4> Q:接下来是一个这样的错误 error C2466: 不能分配常量大小为 0 的数组 x:\xxxx\rtklibhelper\rtklibsrc\rinex.c
A:这个错误我们来看一下, 在[MAXPRNGLO]上面按F12,看他的定义处
这个常量为0,那么不能进行编译,我们想上面一样在预编译器里面加入 ENAGLO
5> Q: error C1083: 无法打开包括文件: “rtklib.h”: No such file or
directory x:\xxxx\rtklibhelper\rtklibsrc\rcv\ublox.c 41 1
rtklibHelper
A: 添加附加目录设置[.\rtklibsrc] , 注意是C/C++的常规下面,不是链接器的常规页面。
6> Q: error LNK2005: _input_oem3 已经在 novatel.obj 中定义 x:\xxxx\rtklibhelper\novatel_old.obj rtklibHelper
A: 这个错误是添加文件的时候添加重复了novatel_old.c不应该添加了,删除即可
7>: Q: error LNK2019: 无法解析的外部符号 _settspan,该符号在函数 _postpos 中被引用 x:\xxxx\rtklibhelper\postpos.obj rtklibHelper
error LNK2019: 无法解析的外部符号 __imp__timeGetTime@0,该符号在函数
_tickget 中被引用 x:\xxxx\rtklibhelper\rtkcmn.obj rtklibHelper
error LNK2019: 无法解析的外部符号 __imp__accept@12,该符号在函数
_accept_nb 中被引用 x:\xxxx\rtklibhelper\stream.obj rtklibHelper
A: 添加附加库[连接器->输入->附加依赖库]添加winmm.lib, ws2_32.lib
8>:Q: error LNK2019: 无法解析的外部符号 _showmsg,该符号在函数 _convrnx 中被引用 x:\xxxx\rtklibhelper\convrnx.obj rtklibHelper
A: 一查showmsg这个函数如果在DLL中需要自己定义,rtklib里面已经做好了处理需要在预处理器里面加入[DLL]即可。
预处理器里面我们添加了
_CRT_SECURE_NO_WARNINGS
_WINSOCK_DEPRECATED_NO_WARNINGS
ENAGLO
DLL
最后rtklibHelper编译成功了,可以开始编写具体的功能函数了。