delphi很方便的就可以实现调用。现在c#的话就不知道怎么办了。

解决方案 »

  1.   

    [DllImport("mycom.dll",EntryPoint="CreateRemote",  SetLastError=true,
                 CharSet=CharSet.Unicode, ExactSpelling=true,
                 CallingConvention=CallingConvention.StdCall)]
            public static extern  int CreateRemote( string name);
    試試
      

  2.   

    既然是com的话,ls的肯定不可以,那个是针对一般dll来的。
    1)先注册,regv32....
    2) c#的reference里面的选卡有com项,添加进来就可以了。此时,你的exe同级目录会多一个intropret.xxx.dll这个就是.net和com的通讯类了。因为.net和com天生不同,所以要有转换
    3)using xxx就能看见。如果对intropret.xxx.dll这个文件名感到不爽,那么就要用TlbImp.exe xxx.dll /out:你要的名字。BTW:com是大家公认的一个标准,什么语言写出来的都一样,Delphi,c++,vb都一样,大家都准收binary准则。
      

  3.   

    dragonlus(毒龙)的方法一开始就试过的,
    先试试superxiaomm(小美)的办法.
      

  4.   

    superxiaomm(小美)
    "因为.net和com天生不同,所以要有转换"
    能大致的说说怎么转换吗?
    有intropret.xxx.dll这个文件了,添加后在对象浏览器里也可以看到这个类和里面的方法.
      

  5.   

    用小美的方法应该可以,我用VB做的com组件与c#就是这样交互的.
      

  6.   

    这个转换是做什么转换?添加后我是如下这样调用的,编译通过,就是在按钮事件里报:内存损坏mydll.MYCOMLink test = new mydll.MYCOMLink();
    bool str = test.OpenTest(0, "strssdawr");就是这里提示:"尝试读取或写入受保护的内存。这通常指示其他内存已损坏"