C#能不能写类似WinAPI函数能被其他程序直接调用的DLL,而不是程序先实例化DLL中的类再用??
可以的话请描述一下如何实现,谢谢

解决方案 »

  1.   

    必须是装了FRAMEWORK的,而且必须是NET支持的程序
      

  2.   

    能不能给个示例或者相关网址
    我找了一下,全是说vc++的,没有说c#的。。
      

  3.   

    我想要做的是可以给其他编程语言调用的DLL(就像调用Windows的API函数一样)就像VC++在DLL中定义的导出函数,我可以在C#中用[DllImport("xxx.dll",EntryPoint="xxx")]来引用C#能不能做这样的DLL???
      

  4.   

    不可以,应为你是在framework上面
      

  5.   

    web service 代理类可以吗?
      

  6.   

    没试过,但我觉得这部分功能很有必要提供!
    不能为了个COM+而又另外安装个VC/VB/...
      

  7.   

    lz:C#完全可以写出被其他平台(语言)使用的组件,只是中间需要实验tlbexp转换一下得到.tlb文件,给你一个实例:public interface IMath
    {
       int Add(int a,int b);
       int Sub(int a,int b);
    }public class MyComponent:IMath
    {
       public MyComponent
       {
       }
       public int Add(int a,int b)
       {
          return a+b;
       }
       public int Sub(int a,int b)
       {
          return a-b;
       }
    }编译后生成MyComponent.dll通过tlbexp转换:
    tlbexp MyComponent.dll
    得到MyComponent.tlb,这是你可以用VC的OLE/COM Viewer工具查看这个文件,
    你会发现它跟我们以前用ATL些的组件IDL文件是一样的,那么你可以使用了。在VC中使用:
    #import "../MyComponent.tlb"
    using namespace MyComponent;HRESULT hr=S_OK;
    hr=CoInitialize(NULL);IMathPth pMath=NULL;
    hr=pMath.CreateInstance(__uuidof(MyComponent));
    long res=pMath->Add(2,3);COUnInitailize();到此实现的所有过程。
      

  8.   

    可以被调用,不过需要.netframework支持,方法在上面,呵呵
      

  9.   

    经典,不过还是脱离不了NETFRAMEWORK的苦海!
      

  10.   

    在dotnet支持的语言里面调用应该不用tlbexp吧,直接add reference找到相应的dll文件不就可以了么?
      

  11.   

    rikee19810706() : 看看lz问的是什么!!!!!!!