主题:如何用c#做一个dll文件,可以在其他程序中进行调用?
onesxwzhang
[专家分:0] 发布于 2006-08-23 23:35:00
如何用c#做一个dll文件,可以在其他程序中进行调用?
也就是如何利用c#生成一个可以在外部调用的,原来的非托管模式的win32的dll文件?比如,我可以在PB中调用我写的dll文件。
回复列表 (共10个回复)
沙发
onesxwzhang [专家分:0] 发布于 2006-08-23 23:40:00
哪位高手指点小弟一下啊!!!!!
板凳
tujun [专家分:1190] 发布于 2006-08-24 08:54:00
好像C#没有这个能力
3 楼
yuhua [专家分:1730] 发布于 2006-08-24 09:04:00
如果想在pb中调用
就把C#写的dll做成标准的com组件
但需要在目标机上装.net框架和一些命令
我前几天正好做过,给你看看我测试的东西:
using System;
using System.Runtime.InteropServices;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Security.Cryptography;
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyKeyFile("..\\..\\TestKey.snk")]
namespace TestDLL
{
[Guid("66DCC054-AADC-4a17-ACD2-CE82512F5363")]
public interface ITest
{
string SaveOperations(string key);
}
/// <summary>
/// Class1 的摘要说明。
/// </summary>
[Guid("6504BE69-59CE-486f-B6EB-99677A244503")]
public class Test:ITest
{
string name="测试用的dll";
public Test()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
#region ITest 成员
public string SaveOperations(string key)
{
// TODO: 添加 Test.SaveOperations 实现
return name+key;
}
#endregion
}
}
注册的步骤:
csc /t:library /out:TestDLL.DLL TestDLL.cs
tlbexp TestDLL.dll /out:TestDLL.tlb
regasm /tlb:TestDLL.tlb TestDLL.dll
gacutil /I TestDLL.dll
对了.snk 文件是sn命令生成的,guid号使用一个工具,叫guidgen.exe
最后注明,一切命令都在.net命令提示符下面
4 楼
孤独的猫 [专家分:3370] 发布于 2006-08-24 10:03:00
C#能做出标准的COM?~~~
5 楼
yuhua [专家分:1730] 发布于 2006-08-24 10:22:00
呵呵
这个只和.net有关系
和c#没啥关系呵呵
C#的com组件是什么语言都可以用的,但是需要.net注册环境
6 楼
yuhua [专家分:1730] 发布于 2006-08-24 10:32:00
.net 出现好像就叫着说用.net组件取代com
可以还不是要与com交互?
7 楼
onesxwzhang [专家分:0] 发布于 2006-08-25 17:53:00
谢谢yuhua了。
你上面的过程我试过了
但我还不知道在PB中怎么调用组件,,
能不能在赐教一下啊
呵呵!!!!!
谢谢yuhua了。
你上面的过程我试过了
但我还不知道在PB中怎么调用组件,,
能不能在赐教一下啊
呵呵!!!!!
先在这预谢了啊!
先在这预谢了啊!
8 楼
onesxwzhang [专家分:0] 发布于 2006-08-25 17:56:00
因为我现在是要做个组件,,给别人用PB调用,,我自己还不知道怎么用PB调用组件呵
这是小弟的第一次编写组件啊
望大哥给帮帮忙!
9 楼
yuhua [专家分:1730] 发布于 2006-08-26 09:27:00
你让他用ole对象
有个connectiontoobject()方法
参数是:namespace.calssname
或者你根据你的guid号 去注册表里面查处对象名
我是在vb里用的,
原理一样
他如果pb熟的话应该知道怎么用com对象,
但有一点:他在使用前要按照上面的步骤注册
10 楼
onesxwzhang [专家分:0] 发布于 2006-08-31 11:22:00
yuhua,你好!!
你做过用PB调用C#组件的例子吗?
因为我现在不知道程序对不对,我自己要试着用PB来调用测试一下,
能不能告诉我具体的步骤啊!
我来回复