C#中调用C++写的控件的函数
函数的功能是从IStream接口中打开一个文件
函数的原型是:OpenFileS(IStream *Stream)
在C#中如何实现?
我的代码是
            FileStream fStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read);
            byte[] bytes = new byte[fStream.Length];
            fStream.Read(bytes, 0, bytes.Length);
            fStream.Close();
            Stream stream = new MemoryStream(bytes);
            //然后调用该函数
            M.OpenFileS(stream);
结果没打开文件

解决方案 »

  1.   

    当然打不开文件了,你都将它转到内存去了。你应该直接把fStream 传递给M.OpenFileS。
      

  2.   

    是你做成dll了还是源代码直接引用的
      

  3.   

    当然打不开文件了,你都将它转到内存去了。你应该直接把fStream 传递给M.OpenFileS。直接把fStream传递给M.OpenFileS是打不开的。
    函数的原型是:OpenFileS(IStream *Stream) 
    IStream是一个接口,是否要实现这个接口,然后再用类定义对象,将对象传入呢?
      

  4.   

    你那个C++的控件是.NET编写的吗?好像你都没有使用DllImport来导入函数啊。不过我挺奇怪的,既然是控件,参数传递一个文件路径不是更方便调用吗?
      

  5.   

     控件是C++写好的,我要调用控件里的函数,就是要测一下那个函数在.NET下能不能使用