EDA365电子论坛网
标题:
MatlabR2014a 32位 调用dll 直接崩溃Matlab system error
[打印本页]
作者:
ubeautqq
时间:
2020-9-15 15:55
标题:
MatlabR2014a 32位 调用dll 直接崩溃Matlab system error
dll已加载成功并且能调用一部分函数,调用'ReadWavelength'直接挂 我该怎么办?
7 _5 W4 Z+ ~6 E* z# J2 v4 y
' I5 L: y L& |/ p4 ~0 q. [
try
i S: j* l4 e \, Y
9 L& m& `1 z+ o1 M7 B1 F
if~libisloaded('OpticalDevice')
: J+ c, {, _! B1 {5 Q
loadlibrary('OpticalDevice','OpticalDevice.h');
/ m8 X/ {( s. Q8 ~, z; D! Q
end;
5 O" X4 q% h9 B8 M7 c& j& X0 e
m = libfunctions('OpticalDevice','-full');%显示库中函数
+ J- H1 q4 Z, i& X3 ]3 u
% libfunctionsview OpticalDevice;%显示库中函数
( u3 I# W6 h/ d% O: [$ h J
sSerialNO ='123';
" n" @% A# d {" T) ^. k( Z+ x
pCharSerialNO = libpointer('cstring',sSerialNO);
; z( Z: w8 k1 }% l. @8 [' u
2 d Y$ V$ [, L4 t& `( N9 i, F, V; {
%p = libpointer('stringPtr');
4 `' u+ i6 q8 p: [0 _3 I, Y
nNumPixels = 0;
8 b; ]% ^5 I8 e! T- G( e1 E
sSerialNum='';%序列号
! u. U3 U3 N% l
bSuccess=calllib('OpticalDevice','OpenDevice');%打开设备 是否安装了驱动? usb插拔一下?
* G) c% [- _* g3 |) |$ s
if bSuccess==0
0 y5 ~3 q; X& p; c7 b5 K
msgbox('打开设备失败','警告');
# u C( U5 s0 c$ `# I4 Y7 Q
else
* ] Q- s+ V; D% ]% M- e
nNumPixels = calllib('OpticalDevice','GetNumPixels');%调用成功
- ^) W2 |! | ]2 a
% calllib('OpticalDevice','GetSerialNO',pCharSerialNO); %调了就崩溃
0 \$ P$ {2 T7 R" {# u( A
0 l: y6 `6 t9 l# O* l& L
%%调用'ReadWavelength'直接挂
' M# {4 N& T |
wavelength = 0.1:1:10000;
! ~; F! _) A; q
pWavelength = libpointer('singlePtr',wavelength);
% o6 y# J" \) @7 H
bSuccess = calllib('OpticalDevice','ReadWavelength',pWavelength);%运行到这里Matlab直接崩溃弹窗(Matlab system error)
1 }4 J1 T, W# A, g! X1 \' J1 i$ ^. b
%'[bool, singlePtr] ReadWavelength(singlePtr)'
- R4 F8 t" j, y, S% V& C
) p0 L9 t; d1 E% @) z$ d
/ L8 w+ t; \/ @) c, [3 E& I2 M3 M
if bSuccess==1
; x N# l. y f1 R" e) d2 C
disp('读取波长成功');
/ K9 }+ P9 Y; o# V
else
+ v" S$ `# e( H" K6 v! C
disp('读取波长失败');
3 z) g# \/ f# y, V$ ~2 S
end
; ^4 T3 _7 Z1 P- E6 P! {5 T
end
7 Q+ O/ B1 R4 U3 G5 l
" j' g' e: E( W* O" J+ Y- K
bSuccess=calllib('OpticalDevice','CloseDevice');
& z8 j9 z/ b) q' C4 ?7 U( u8 l
unloadlibrary('OpticalDevice');
1 N) u- i* ^( Z% S
catch exception
6 ?# R5 T' _0 m2 L
bSuccess=calllib('OpticalDevice','CloseDevice');%关闭设备
2 }; L, G/ E I5 d( U* [ n
unloadlibrary('OpticalDevice');%释放库
( T% H. U: P; w0 n: i; \
9 J+ g4 B; I1 T9 _
disp(exception);
0 o s5 A& u p& V* t" n; d: E
end
$ u1 R* ?5 e8 r; V
/ m! d; X. B& S0 s& |4 F3 ]0 b9 v
作者:
NNNei256
时间:
2020-9-15 17:19
这是资料还是问题啊
作者:
CCxiaom
时间:
2020-9-15 17:34
是不是软件和你的电脑不匹配啊
作者:
ubeautqq
时间:
2020-9-15 17:35
CCxiaom 发表于 2020-9-15 17:34
, H Y9 y0 P1 }8 u. B2 E
是不是软件和你的电脑不匹配啊
0 h$ [" V! N/ m: l9 g$ r; W- L5 y
不知道啊
* N/ i0 t1 q n, A& _+ I% i$ t
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2