要编制一个实用的程序,具体可分为如下七个步骤:
1. 定义程序目标
2. 设计程序
3. 编写程序
4. 编译程序
5. 运行程序
6. 测试与调试誉庆程拍虚弯序
7. 维护与修改程序
1. org 100h如:
code segment
assume cs:code,ds:code,ss:code
org 100h因为所有的COM程序都会被加载到CS:100处。
start:
jmp code1
data db 0
...
code1:
int 20h
code ends
end start
2、编译成exe后,用exe2bin a.exe a.com。
或用debug手动制作:
debug a.exe
n a.com
rcx 这时将原cx值减去100H后盯渣则培,填入凯盯悄。
w
q
---------------------------------------------------------------
对于com注意以下几个问题:
1.com没有header
2.com程序不分段
3.com入口点必须是100h
4.com不必设置stack,sp=段尾
5.com的过程为near
然后用exe2bin把exe变成com
..
这里我们将介绍C#调用COM组件的几个步骤,先将Com类型信息转换为.NET元数据,然后派仿查看元数据,最后测试程序。首先将Com类型信息转换为.NET元数据
tlbimp sample.dll /out: sample_clw.dll
工具:Tlbimp.exe(类型库导入程序 )
参考:.Net framework SDK 文档
ms-help://MS.NETFrameworkSDK.CHS/cptools/html/cpgrftypelibraryimportertlbimpexe.htm
查看元数据
工具:ILDasm
参考:ms-help://MS.NETFrameworkSDK.CHS/cptutorials/html/il_dasm_tutorial.htm
测试程序:
生成一个console programme
在project->add reference里,选返谈择com,browser你的com,select
ok,现在在你的bin目录下应该有一个sample_clw.dll了
下面我们来用sample_clw的方法
using System using sample_clw namespace CompConsole { /// <summary> /// Class1 的摘要说明尘世纤。 /// </summary> class Class1 { /// <summary> /// 应用程序的主入口点。 /// Date:2003/6/20 /// </summary> [STAThread] static void Main(string[] args) { // // TODO: 在此处添加代码以启动应用程序 Console.Write ("=======Demo for Call com functions in c#=============\n") sampleClass sam = new sampleClass() //now we call functions // sam.SayHello() } } 】
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)