我在C#类库中写了一个数据库增删改查的程序,生成了dll,在VC中要链接DLL似乎还需要.h和.lib,现在想让VC6.0去调用这个DLL中的方法,不是用API函数来动态加载,能给支个招吗?
还有就是用VC6.0中的dumpbin.exe和lib.exe来对C#的DLL进行操作所生成的.lib文件是否有效?
在dumpbin /exprots *.dll>*.def后生成出的.def文件中并没有输出段,是否可以直接增加上去?
根据以往的提问的答案:
将输出段:
ordinal hint RVA name
2 0 00001005 xxx_func1
3 1 0000100F xxx_func2
修改为:
LIBRARY "xxx"
EXPORTS
xxx_func1 @2
_func2 @3
这其中的@2代表的意义是什么?自己增加时是必需的吗?

解决方案 »

  1.   

    托管代码不可以被VC调用的.托管代码的编译方式和传统的DLL都是不一样的
      

  2.   

    vc调用C#是可以的,不过vc的工程里要改很多设置,如果楼主想要,留下邮箱
      

  3.   

    对了,忘了说一句,我是在vs2005上写的,楼主一定要vc6么?
      

  4.   

    本地代码没有本法直接用托管类库,直接增加输出段不能解决问题。但是,有两种方法使得本地代码可以使用类库:1、类库注册为COM,然后本地代码用COM方式调用(比较常用的方法)
    2、在本地代码中手动加载CLR(CLR hosting),然后让CLR装入类库,运行类库中的方法
      

  5.   

    plamax:
    我是用2003的,因为某些原因只能用VC6.0的来引用DLL,而6.0中的数据库操作主要为OLE DB或用DAO,这个没有接触过,也不习惯gomoku:
    能具体说一下那两种方法的步骤吗?对于COM和手动加载CLR不是很理解,谢谢!!
      

  6.   

    [email protected]
    这是我的邮箱,谢谢
      

  7.   


    晕,可我没有vs2003啊,即使我把项目文件给你,你也没办法编译啊,应该MS没提供高版本工程往低版本转换的功能