我在C#下创建一个类库  引用了程序A,和程序集B。
通过设置 生成COM库,使COM可见等操作生成了Test.dll 类库。
 
2)通过tlbexp test.dll /out:test.tlb 命令生成了 test.tlb3)在VC程序中,引入该文件,然后调用其中的函数,在本地(开发电脑上)运行正常。
  但是把程序拷贝到其它电脑上,就报错! 该电脑上已经安装了DotNet Framework 2.0
   
  请问是为什么???多谢

解决方案 »

  1.   

    1.Net版本是否和开发机一样?
    2,dll文件是否注册了?
      

  2.   

    stdafx.h中导入tlb文件的目录是否有tlb文件。
      

  3.   

    类库开发的时候选择选择的框架是2.0 和目标机器上的版本一致。
     dll如何注册?????
      

  4.   


    VC工程引用 如下:
    #import "test.tlb"
    using namespace test;
      

  5.   

    导出:tlbexp a.dll /out:a.tlb
    注册:regasm a.dll /tlb:a.tlb /codebase详细查查regasm,好像是在dotnet提示符下运行的。
    曾经使用C#写过一次com类库。
      

  6.   

    多谢 
    我是用 导出:tlbexp a.dll /out:a.tlb 命令 生成的 tlb文件,
    然后把该文件加载到VC工程中 引用的。
    注册:regasm a.dll /tlb:a.tlb /codebase
    是在目标机器上 要执行一下这个命令吗?????
      

  7.   

     我在目标机器上 运行了注册命令 regasm a.dll /tlb:a.tlb /codebase  程序执行到了 CoInitialize(NULL);
    --->Test::IFuncPtr p_CFun(__uuidof(CFun));就报错了
      

  8.   

    http://topic.csdn.net/t/20050516/23/4012043.html