方法一:你可以将pBmpData声明为IntPtr
方法二:你可以用System.Runtime.InteropServices.Marshal.UnsafeAddrOfPinnedArrayElement获得byte[]的地址

解决方案 »

  1.   

    请问Brunhild
    如果使用方法1,是不是要修改VC方面的接口?
    我直接修改了C#这边的接口,可以编译,但运行的时候出现错误。
    [DllImport("xxx.dll", EntryPoint="#4")]
    public static extern int aaa(
    IntPtr pBmpData, 
    int nWidth, 
    int nHeight);
      

  2.   

    我也做过相同的东西,vc里面是字节指针,C#里直接就用字节数组传进去就行了
      

  3.   

    请问Wangxt,您能说清楚一些么?
    我上面的修改有没有问题?
      

  4.   

    把pBmpData定义成IntPtr就可以的.
      

  5.   

    贴个Api参数转换的参考给你The following table lists data types used in the Win32 API (listed in Wtypes.h) and C-style functions. Many unmanaged libraries contain functions that pass these data types as parameters and return values. The third column lists the corresponding .NET Framework built-in value type or class that you use in managed code. In some cases, you can substitute a type of the same size for the type listed in the table.Unmanaged type in Wtypes.h  Unmanaged C language type Managed class name Description 
    HANDLE void* System.IntPtr 32 bits 
    BYTE unsigned char System.Byte 8 bits 
    SHORT short System.Int16 16 bits 
    WORD unsigned short System.UInt16 16 bits 
    INT int System.Int32 32 bits 
    UINT unsigned int System.UInt32 32 bits 
    LONG long System.Int32 32 bits 
    BOOL long System.Int32 32 bits 
    DWORD unsigned long System.UInt32 32 bits 
    ULONG unsigned long System.UInt32 32 bits 
    CHAR char System.Char Decorate with ANSI. 
    LPSTR char* System.String or System.StringBuilder Decorate with ANSI. 
    LPCSTR Const char* System.String or System.StringBuilder Decorate with ANSI. 
    LPWSTR wchar_t* System.String or System.StringBuilder Decorate with Unicode. 
    LPCWSTR Const wchar_t* System.String or System.StringBuilder Decorate with Unicode. 
    FLOAT Float System.Single 32 bits 
    DOUBLE Double System.Double 64 bits For corresponding types in Visual Basic .NET, C#, and the Managed Extensions for C++, see the Introduction to the .NET Framework Class Library.