C# 及其特性

1.C#是一种从C++和Java继承而来的,简单的,现代的,面向对象的语言.
2.它的目标是综合Visual Basic高产和C++底层高效的特性.
3.它是Microsoft Visual Studio7.0 的一部分.
4.Visual studio支持Vb,VC++,C++,Vbscript,Jscript.所有这些语言提供对Microsft .NET平台的访问.
5..NET包括一个Common Execution引擎和一个丰富的类库.
6.Microsofts JVM eqiv就是Common language(通用语言)运行库(CLR).
7.CLR支持不止一种语言,诸如 C#,VB.NET,Jscript,ASP.NET,C++.
8.源代码--->中间语言代码(IL)--->(JIT 编译器)机器码. 阅读全文 >>

C#调用非托管动态库中的函数

C#如何调用一个非托管动态库中的函数呢,比如用VC6写的动态库,总之C#调用动态库的过程是比Java调用DLL动态库方便快捷多了,下面举例说明这个过程。

1。创建一个非托管动态库

代码如下:

注意上面代码,一定要加上 extern"C" ,不能生成的动态库中的导出函数名就不会是add,而是像 ?add@@YAHHH@Z 样子,后面只是通过函数名 add 来定位函数入口就会出问题。
阅读全文 >>

使用JNative,在Java中传递一个C/C++结构参数到动态库中

用C++写的动态库的导出方法的代码如下:

阅读全文 >>

Java调用动态库最简便方法和最好用的组件

记得以前 Java 要调用C/C++写得动态库都是用的 JNI 方式,还需要自己写不少 C/C++ 代码。比如说要在Java中调用已有的动态库,如 Windows 的 user32.dll 的方法 MessageBoxA,具体步骤是 Java 中声明一个 native 方法,然后用 javah 命令生成JNI样式的头文件,再自己实现头文件中声明的方法,在实现方法中装载动态库 user32.dll,调用 MessageBoxA 方法,需要把自己写的这部分 C/C++ 代码封装成一个动态库,如Sample.dll,最后在 java  中装载 Sample.dll,然后执行其中所声明的本地方法。

可见,用老实的JNI方式,我们在调用一个已知动态库的时候还需要额外生成一个符合JNI规则的动态库作为桥梁,显得有点多余了。 阅读全文 >>

VC6.0编译时出现"Error spawning cl.exe"及解决方法

我安装了VC 6.0后,写一段简单的"Hello World"程序,点击 Build 按钮,信息栏里只出现"Compiling...,Error spawning cl.exe"错误提示。原来那么久可没碰到过这种错误,一下子有点蒙了,没法,很容易就有产生重新安装VC来解决。

重新安装的话太麻烦,还是先到网上找找有没有相应的解决方案,把出错提示放网上google一下,就查到http://www.mscenter.edu.cn/blog/k_eckel/articles/3016.html 的一篇文章提供了方法。 阅读全文 >>

管理和IT的对话

有一个人坐热气球在天空中飘浮,不觉间迷了路,他把热气球下降少许,向地面上的一位路人问路。
「对不起!你能否告诉我,我现在身处何方吗?」
「你现在正坐在热气球上,离地面约3米。」路人说。
「先生,我猜你一定是从事IT行业的。」热气球上的人说。
「对啊!你为甚么会知道的?」
「因为你给我的答复很技术性,但完全没有用。」
「先生,我也猜猜你的职业吧!你一定是做管理的。」路人说。
「对呀!你为甚么会知?」
「Well!因为你不知自己在哪?也不知自己应往哪方走,但你却希望我帮你解决问题,你现在的处境和先前没有两样,但责任已归咎在我身上。」

在VS.NET的VC++中运行控制台程序后暂停

在VC++6.0中运行控制台程序后,执行完后控制台会出现       Press any key to continue . . .  按任意键,控制台才消失。

但是换到在VC++7.0 (VS.NET的VC++)中编写的控制台程序,点击运行后,默认情况下马上把控制台关了,让你看不到输出结果。那么在这个IDE下如何让 Press any key to continue . . . 再次出现呢?

C++中实现"任意键暂停"对于要直接查看输出结果时很重要的,比如你用的是BC编辑器,不能像VC那样自己实现程序运行完后暂停,而是跳回到编辑状态,根本看不到运行结果。

有的人会用#include<conio.h>加上getch();来实现,其实完全不需要的……

用VC或BC编辑C++程序,不用像C语言中加入头文件conio.h ,然后用getch()来实现任意键暂停。

用system("pause");这个语句就可以,不过如果你想改变文字还是要用上面的办法。

其实在C语言中的stdlib.h的头文件中就有这个函数。

Portal 的概念和内涵 [转]

Portal一词原来是"门户网站"的意思,如YAHOO!、AltaVista、SINA这样的网站。而对于企业信息化而言,它扮演的角色则有所不同。对企业来说,建立Portal的意义在于可以使员工共享各种系统和信息资源,并对其进行统一的管理。对员工来说,通过Portal可以了解和掌握有关企业的各种信息、参加讨论、协同工作等。Portal自动将分散于企业各处的信息资源整理并发送给员工,真正实现信息找人的目的。
  Portal现在已经成为企业最关注的领域之一,是实现企业整合的第一步。其重要价值在于它是企业现有投资与新投资的集成节点,使用户能够与人、内容、应用和流程进行个性化的、安全的、单点式的互动交流。 阅读全文 >>

软件业中的编码(Coding)与开发(Development)的区别

跑到一个新公司,忽然发现自己真变成IT民工了,那里边管没有一官半职的开发人员称为做Coding的
Coding是什么?Coding就是代码工人,难道他们所谓的做Coding的真的不需要半点儿创造力吗?
除非你把详细设计做的非常好,那直呆下去,只要我们做重复性的事情吗,那我更不愿干了
先前对软件事业的狂热难道就此被打压下去吗?

编码(Coding)有一种"把已经存在的设计机械化地翻译成计算机语言"的意味
而开发(Development)并不都这么机械化的,需要可观的创造力的判断力 阅读全文 >>

常用log4j配置

常用log4j配置,一般可以采用两种方式,.properties和.xml,下面举两个简单的例子:

最简单的配置是只要取下面的log4j.properties文件中带下划线的四行就行,它完成日志输出到控制台。

一、log4j.properties 阅读全文 >>