关于怎么用未管理代码调用受管理代码的问题(原创)

问题|原创

我只是想说一下用vb,或vc的createobject()
使用.net组件的问题步骤
1. 建立.net Classlibrary工程
   using System;

namespace ClassLibrary1
{
    /// <summary>
    /// Summary description for Class1.
    /// </summary>
    public class Class1
    {
        public Class1()
        {
            //
            // TODO: Add constructor logic here
            //
        }

        public int Add(int i,int j)
        {
            int k=i+j;
            return k;
        }

    }
}

   
   用SN工具c:\sn -k key.snk生成密钥文件(为了以后编译为全局装配件)
   再在AssemblyInfo.cs中加入[assembly: AssemblyKeyFile(@"c:\key.snk")]
   编译为DLL(也就是所说的.net专用装配件)

2.我们要用RegAsm工具(.net自带的)注册带有COM的组件
  c:/regasm classlibrary1.dll
   将装配件清单的元数据输出到 系统注册表,
   已便Com services可以找到元数据
---这个操作在注册表中填加了一项
   (HKEY_LOCAL_MACHINE->software->classes->classlibrary1.class1目录)
   

3.当我们写出下面的代码时
    dim o
    set o=createobject("classlibrary1.class1")
    Call MsgBox(o.Add(57,4))
    将其保存为x.vbs

(   其中,classlibrary1是你要做的DLL的名字空间      
           class1是类(加在注册表中了)
    (哈哈,Add(int,int)方法当然要自己完成了!)

  (这个就是第一步和第二步要完成的了)

当我们执行上面的X.vbs文件时
   结果该弹出一个消息框的,上面写着Add()方法返回的结果
   -----如果正确,你成功了,但是(如果你真的按我的步骤做的的话,是不会对的了)
   
   因为com services还不能找到汇编文件

4. vb脚本函数在注册表中发现了需要的类
   但是要.net代码运行
   注册表项目要将Com Services重新只向.net代码
   也就是Com Services要找到.net代码
   那我们就要把我们的DLL做为全局装配件,放在c:/winnt/assembly目录下
   哈哈 ,我们就要学着怎么把我们做的DLL转成全局装配件了
  go!!!!!!!!
5.使用AL工具了
   不好意思了,到这我就不会了,没做完
   我会继续努力的
   希望那为能给于指点

时间: 2024-12-26 23:44:54

关于怎么用未管理代码调用受管理代码的问题(原创)的相关文章

c语言-android项目中JNI调用的C代码

问题描述 android项目中JNI调用的C代码 最近的一个项目,需要通过JNI在串口中读取数据,读取数据并返回的代码是用C语言写的.我对C语言很陌生,哪位大神帮帮忙,帮忙撸几句代码.JNIEXPORT jbyteArray JNICALL Java_com_cem_serialdevdemo_CodeJNI_ReadRfidSerialPort (JNIEnv env jobject obj){//大致的思路是: int rev=0; unsigned char sof; unsigned c

PHP调用Webservice实例代码_php技巧

它是一个开源软件,是完全采用PHP语言编写的.通过HTTP收发SOAP消息的一系列PHP类,由NuSphere Corporation(http://dietrich.ganx4.com/nusoap/ )开发.NuSOAP的一个优势是不需要扩展库的支持,这种特性使得NuSoap可以用于所有的PHP环境,不受服务器安全设置的影响. 方法一:直接调用 复制代码 代码如下: <? include('NuSoap.php'); // 创建一个soapclient对象,参数是server的WSDL $c

数据库函数代码管理 - 自动备份函数\过程代码到SVN\github\gitlab

标签 PostgreSQL , 存储过程 , plpgsql , plpython , pljava , svn , github , 版本管理 背景 市面上有很多代码的版本管理软件,比如gitlab, github, svn等等. 商业数据库的编程能力较强,比如Oracle的PL/SQL,很多传统企业会将对一致性.可靠性要求非常高的业务逻辑放到数据库中,这就造成了数据库内不仅仅存储数据,也存储了部分业务代码. PostgreSQL 作为开源界最高级的开源数据库,同样支持强大的函数语言plpgs

回车键调用-这个按Enter调用函数的代码为什么在猎豹上不执行?而且在ie上执行的也不正常

问题描述 这个按Enter调用函数的代码为什么在猎豹上不执行?而且在ie上执行的也不正常 <!DOCTYPE html> Document<br> function leyLogin(){<br> if(event.keyCode==13){<br> document.getElementById("input1").click();<br> }<br> }<br> 解决方案 放chrome上执行试试

如何用php代码调用两点地图(百度或谷歌)的最短驾车公里数(急)

问题描述 如何用php代码调用两点地图(百度或谷歌)的最短驾车公里数(急) 如题.最终想实现的就是在网页上输入两点名称,点击提交按钮后就能够显示两点的最短驾车公里数.各位大侠帮帮忙!

javascript如何调用C#后代码中的过程 和ASP.NET调用JS乱码解决方案

asp.net|javascript|js|过程|解决 javascript如何调用C#后代码中的过程 和ASP.NET调用JS乱码解决方案  +++++++++++++++++第一种情况: 1.后台方法: protected string CsharpVoid(string strCC){  return strCC; } 2.javascript 调用<script  language="javascript">   var s = "<%=Csharp

mfc-MFC调用SetTimer为什么代码不执行

问题描述 MFC调用SetTimer为什么代码不执行 MFC使用OnTimer函数了,也编写了代码,但是调用SetTimer为什么代码不执行呢?也没有任何报错,十分疑惑? 解决方案 用classwizard将消息和处理函数关联起来了没有?看下你的对话框的消息的定义 解决方案二: 代码_MFC_右键菜单MFC自动生成代码详解(一) 解决方案三: SetTimer是定义定时器的,只有定义了SetTimer,OnTimer才会被触发 解决方案四: SetTimer是自己需要想办法触发的,比如你在OnC

java小白又来烦大家啦,这次是带参方法的调用问题:代码和问题如下:

问题描述 java小白又来烦大家啦,这次是带参方法的调用问题:代码和问题如下: import java.util.Scanner; class Rilitou { static Scanner in = new Scanner(System.in); public static void rilitou(int year,int month){ /*System.out.println("请输入您想查询的年份:"); year = in.nextInt(); System.out.pr

swift未解决八皇后的问题代码

问题描述 swift未解决八皇后的问题代码 首先提一下八皇后的问题:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行.同一列或同一斜线上,问有多少种摆法. 代码问题:用下面我自己的方法实现的八皇后,结果出现了无尽的循环.可能是思路还是哪里的不严谨?请教大伙帮忙改改!我已经尽力了... 注:代码可以直接粘贴复制进xcode的playground进行测试! class ChessBoard { var limit: Intvar queens = [Queen](