Note, I tried this link and had no luck.
Problems with struct pointer pointer in calllib
조회 수: 1 (최근 30일)
이전 댓글 표시
I'm working with a header that has the following declaration:
struct ADI_FileHandle__ { int unused; }; typedef struct ADI_FileHandle__ *ADI_FileHandle;
One function I am using is:
DLLEXPORT ADIResultCode ADI_OpenFile(const unsigned short* path, ADI_FileHandle* fileH, ADIFileOpenMode mode);
My Matlab code calling this is:
result = calllib('ADIDatIOWin','ADI_OpenFile',int16(file_path),file_handle_pointer,file_open_mode);
This results in a value for unused (structure field in ADI_FileHandle__ ). A typical value is something like 1654585380. The result value indicates a success.
I then try to call another function:
DLLEXPORT ADIResultCode ADI_GetNumberOfChannels(ADI_FileHandle fileH, long* nChannels);
in Matlab as:
file_handle_pointer = libpointer('ADI_FileHandle__Ptr');
set(file_handle_pointer,'Value',struct('unused',int32(1654585380)))
n_channels_pointer = libpointer('longPtr');
result = calllib('ADIDatIOWin','ADI_GetNumberOfChannels',file_handle_pointer,n_channels_pointer);
At this point Matlab crashes.
What am I missing?
Thanks, Jim
댓글 수: 5
답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Function Creation에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!