Tôi quen thuộc với việc viết các tệp DLL có thể được gọi từ LabVIEW, nhưng tôi tò mò muốn biết cách nào đúng để chuyển IMAQ Images sang một DLL có thể là. Dưới đây là một cách tôi đã tìm thấy để làm điều đó - Tôi cũng sử dụng một cơ chế tương tự để đăng các trường hợp IMAQ Image từ DLL của tôi đến một Cấu trúc sự kiện.LabVIEW, C++ DLL và IMAQ Images
Lưu ý rằng các nút chuyển đổi các trường hợp hình ảnh đến/từ cụm được đặt tại ${LABVIEW_INSTALL_DIR}/vi.lib/vision/DatatypeConversion.llb
, và được đặt tên IMAQ Image Datatype to Image Cluster.vi
và IMAQ Image Cluster to Image Datatype.vi
, tương ứng. Cụm được tạo bao gồm tên hình ảnh và giá trị số nguyên đại diện cho địa chỉ con trỏ tới loại Image*
trong C/C++.
Đây có phải là cách tốt nhất để làm điều này hay không, có cách nào tốt hơn không?
Một vấn đề tôi có thể thấy là nút chuyển đổi đang cung cấp U32. Nếu bạn đang trên 64 bit có thể có vấn đề ... – CharlesB
Vâng, tôi nhận thấy rằng - đó là xảy ra bởi vì tôi đang xác định tham số cho các cuộc gọi chức năng vào DLL là một 'Con trỏ Sized Integer'. Vì tôi đang hoạt động trong môi trường 32-bit, điều này không ảnh hưởng trực tiếp đến tôi - nó rất tò mò, mặc dù một đầu ra 32 bit xảy ra là trường hợp, khi tôi đang chạy NI Vision 2011, có hỗ trợ 64 bit. Nhìn vào đầu ra từ cụm trên, điều đó dường như không hoàn toàn đúng ... – hatboyzero
OK, tôi khá chắc chắn rằng trong môi trường 64 bit nó mang lại một con trỏ 64bit – CharlesB