在c#中用dllimport方式调用dll中的函数后,该dll是自动结束呢还是有方法强制结束该dll呢?c#能不能用象loadlibaray的方式调用dll呢?请指点,谢谢!

解决方案 »

  1.   

    但是我连续两次调用dll中的一个函数时,第二次调用就没有任何反应,将两次调用的顺序颠倒过来,每次都是第二次调用的不起作用。如果dll会自动结束的话,那我的dll(c代码做成的dll)里面有问题?有全局静态变量?
      

  2.   

    k7ta,你好,我是刚开始用dll的,我在vc工程中加入我的.c文件,然后又加入了一个文本文件.def,其中内容是如下LIBRARY   myDLL   
    EXPORTS   MyMain   @1
    编译生成dll和lib文件,然后将dll拷贝到c#的solution相应的目录,其中的dllimport如下[DllImport("myDLL.dll", EntryPoint = "MyMain", SetLastError=true,CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
            public static extern int MyMain(Int16 argc,[MarshalAs(UnmanagedType.LPArray)]string[] word);
    这样调用的问题在哪儿呢?正确的封装应该是什么样呢?请指教,谢谢!
      

  3.   

    忘了给出MyMain函数原形了,就是c中的main函数int MyMain(int argc, char *argv[])