Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 4 của 4
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Lỗi khi xử lý mảng 2 chiều đưa vào từ C#

    Chào các bạn !

    Mình đang thử đưa mảng 2 chiều từ C# vào hàm viết bằng C++ để xử lý nhưng lỗi ( mình muốn lợi dụng tốc độ của C++).

    Mình viết hàm xử lý trên C++. Đơn giản là cho phần tử A[0][0] của mảng tăng lên 1:
    Mã:
    extern "C"
    {
         __declspec (dllexport) void __stdcall MatrixUp(unsigned char **A,int matrixwidth,int matrixheight)
         {
              A[0][0]++;
         }
    }
    Bên C# :
    Mã:
    [DllImport("Lib.dll")]
    extern static void MatrixUp(byte[,] A,int matrixwidth,int matrixheight);
    
    static byte[,] M = new byte[10,10];
    private void Xuly()
    {
         MatrixUp(M,10,10);
    }
    Hàm MatrixUp(M,10,10) báo lỗi : Attempted to read or write protected memory.

    Mình đang sai ở đâu

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    trong C# hình như chỉ có static methods mới đọc và ghi static members được. Mảng M được khai báo là static mà hàm Xuly() là non-static thì nó ko đọc/ghi vào M là đúng rồi

    sửa lại là private static void Xuly() coi có được ko?

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Cảm ơn bạn !Mình thấy hàm không có static vẫn đọc ghi được bạn nhé !

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •