代码如下:
[DllImport("LClientDll.dll",EntryPoint="LClientStartDemo",ExactSpelling=false,CallingConvention=CallingConvention.Cdecl)]
        public static extern int  LClientStartDemo(string *host, string  *port, string  *oper, string  *ch, int *flag);
        [DllImport("LClientDll.dll",EntryPoint="LClientRcvDemo",ExactSpelling=false,CallingConvention=CallingConvention.Cdecl)]
        public static extern int LClientRcvDemo(string  *data);
提示指针和固定缓冲只能在不安全的上下文中使用。求教各位高手该如何改写!!!!!!

解决方案 »

  1.   

    string  *port
    改为stringbuilder
      

  2.   

    具体如何改写?
    还不够具体么?把string * 改为stringbuilder。还要怎么具体?
      

  3.   

    [DllImport("LClientDll.dll",EntryPoint="LClientStartDemo",ExactSpelling=false,CallingConvention=CallingConvention.Cdecl)]
            public static extern int LClientStartDemo(string host, string port, string oper, string ch, int flag);
            [DllImport("LClientDll.dll",EntryPoint="LClientRcvDemo",ExactSpelling=false,CallingConvention=CallingConvention.Cdecl)]
            public static extern int LClientRcvDemo(StringBuilder sb);
            [DllImport("LClientDll.dll",EntryPoint="LClientStop",ExactSpelling=false,CallingConvention=CallingConvention.Cdecl)]
            public static extern int  LClientStop();
    改写成这样就可以了
      

  4.   

    如果加*提示不安全说明要加unsafe喽,比如public unsafe static,具体实现可按提示解决