0

我用labview制作了一个interop assembly.netdll,它接受图像参数,对该图像做一些工作,然后返回图像。

在我将 dll 添加到我的c#.net项目后,我无法弄清楚带有被引用为“ LVBaseRefnum”的 labview 的图像数据类型与哪种数据类型一起使用。我之前成功地调用了简单数据类型和集群类型,但我就是不知道什么 c# 数据类型与 " LVBaserefnum" 或 Image 对象一起使用什么数据类型。

另一方面,它LVBaserefnum有一个将 int refnum 作为参数的构造函数。

LVBaseRefnum img = new LVBaseRefnum(int RefNum)

有人有想法吗?

4

1 回答 1

0

我认为您在Lab View Application Builder中有标准的 C/C++ 构造函数。
如果是,你有指针。在 C# 中,您必须将自编译程序集(我认为是互操作程序集)的类和使用声明为不安全的

例子

class FileReader
{
  const uint GENERIC_READ = 0x80000000;
  const uint OPEN_EXISTING = 3;
  IntPtr handle;

  [DllImport("kernel32", SetLastError=true)]
  static extern unsafe IntPtr CreateFile(
        string FileName,                    // file name
        uint DesiredAccess,                 // access mode
        uint ShareMode,                     // share mode
        uint SecurityAttributes,            // Security Attributes
        uint CreationDisposition,           // how to create
        uint FlagsAndAttributes,            // file attributes
        int hTemplateFile                   // handle to template file
        );

   [DllImport("kernel32", SetLastError=true)]
  static extern unsafe bool ReadFile(
        IntPtr hFile,                       // handle to file
        void* pBuffer,                      // data buffer
        int NumberOfBytesToRead,            // number of bytes to read
        int* pNumberOfBytesRead,            // number of bytes read
        int Overlapped                      // overlapped buffer
        );
于 2013-08-28T11:16:13.057 回答