How can I detect null pointers in Generic DLL return values?

9 次查看(过去 30 天)
I am using the Generic DLL interface with a library that may return null pointers as expected results. I would like to check for null values in my LIBPOINTER results in MATLAB.

采纳的回答

MathWorks Support Team
Starting MATLAB 7.6(R2008a), you can use the function 'IsNull' to verify if a LIBPOINTER is pointing to a null reference.
For previous product releases, read below for any possible workarounds:
The ability to check directly whether a LIBPOINTER is null is not available in MATLAB 7.4 (R2007a) and previous releases. To work around this issue, try to retrieve the pointer's target in a TRY-CATCH block.
Attempting to dereference a null pointer will cause a MATLAB error of type "MATLAB:libpointer:ValueNotDefined". This error usually indicates a null pointer. You can use the following code to check for null pointers:
p = libpointer() % Create a null pointer for testing
try
setdatatype(p, 'int8Ptr', 1, 80) % Use actual expected type and size
get(p) % Try to display data
catch
e = lasterror
if strcmp(e.identifier, 'MATLAB:libpointer:ValueNotDefined')
disp('Null pointer.')
% React to null pointer result
end
end
get(p) % Show pointer target

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Call C from MATLAB 的更多信息

标签

尚未输入任何标签。

产品


版本

R2007a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by