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% Scatch 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: Eend$ 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