QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 13873|回复: 3
打印 上一主题 下一主题

[其他资源] matlab生成exe文件(总结)

[复制链接]
字体大小: 正常 放大
我能 实名认证    中国数模人才认证   

24

主题

8

听众

2288

积分

升级  9.6%

  • TA的每日心情
    慵懒
    2023-4-27 19:48
  • 签到天数: 321 天

    [LV.8]以坛为家I

    社区QQ达人

    群组中国矿业大学数模培训

    群组数学建模培训课堂2

    群组2011年第一期数学建模

    群组学术交流B

    跳转到指定楼层
    1#
    发表于 2012-11-2 13:08 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    matlab功能相当的强大,写好了m文件但是其他很多电脑没有安装matalb,不能运行,所以我们想找到生成exe的可执行文件,我么就想到了和c语言c++进行混合编程,在windows下生成exe文件,matlab和vs等的文章很少大都是那几个 ,我自己在网上找了些东西总结了下:  J8 D& u) U2 I, s5 x
    0 I1 T3 S( N4 ?  f8 z3 L
    1.Matlab环境设置
    要建立独立运行的C应用程序,系统中需要安装MatlabMatlab编译器、C/C++编译器以及Matlab C/C++数学库函数和图形库函数。+ z# `- t, Y9 b8 e: w) f* A
    Matlab编译器使用mbuild命令可以直接将C/C++源代码编译为独立运行程序,在这些源代码中可以使用Matlab提供的接口来调用Matlab数学库函数。
    . y7 F3 [- h1 Q# _
    虽然生成的可执行程序可以脱离Matlab环境运行,但是它需要Matlab C/C++数学库文件或者图形库文件的支持才能运行。但如果C/C++源代码完全是按传统C/C++源代码语法规则编写,没有包含Matlab数学库和图形库的调用,则不仅可以独立与Matlab环境,也不需要那两个库函数的支持。
    Matlab Command Window 下输入命令
    mbuild – setup
    操作过程如下图:
                                  
    然后输入命令
    mex – setup
    以类似的方法配置编译器。Matlab 的配置完成。
    2.VS环境设置
    1)设置Include Library 目录
    项目右键->属性->VC++目录->包含目录:添加
    <MATLAB>\R2010b\extern\include\win64
    <MATLAB>\R2010b\extern\include\
    项目右键->属性->VC++目录->库目录:添加
    <MATLAB>\R2010b\extern\lib\win32\microsoft
    <MATLAB>\R2010b\extern\lib\win64\microsoft
    截图(部分):
    2)设置工程目录
    项目右键->属性->C/C++->常规->附件包含目录:添加
    <MATLAB>\R2010b\extern\include\win64
    <MATLAB>\R2010b\extern\include\
    项目右键->属性->链接器->常规:添加
    <MATLAB>\R2010b\extern\lib\win32\microsoft
    <MATLAB>\R2010b\extern\lib\win64\microsoft
    项目右键->属性->链接器->输入->附件依赖性:添加
    libeng.lib4 F# y$ S8 h/ r. D. g
    libmat.lib7 n+ J( j0 @4 r# h
    libmex.lib5 W% l8 T3 j! r: W) Z4 k2 h
    libmx.lib
      
    注:1.lib文件包含在<MATLAB>\R2010b\extern\lib\win64\microsoft,可根据需要增减
    2.附件依赖性在VS2010前以空格隔开,在VS2010后使用;隔开。
    截图:
    项目右键->属性->链接器->高级->目标计算机:更改(只针对64WINDOWS
    MachineX86 -> MachineX64
    注:分析原因为MATLAB根据计算机平台选择了X64编译环境,如此处不修改会出现 错误3
    3)配置管理器设置(只针对64WINDOWS
    生成->配置管理器->平台:更改
    Win32->X64
    注:分析原因为配合链接器中目标计算机的修改,如此处不修改会出现 错误4
    截图:
    3.系统(Windows)环境设置
    我的电脑->属性->高级系统设置->高级->环境变量->Path,添加:
    <MATLAB>\R2010b\bin;<MATLAB>\R2010b\extern\lib\win64\microsoft;<MATLAB>\bin\win64
    注:1.Windows7的情况下,用户变量系统
    变量都需 添加,如不添加,运行时会出现 错误5
    2.哈哈,别忘记重启哈,重启后生效
    OK!配置就此结束,现在就开始engOpen吧!!对了,别忘记添加#include "engine.h"

    / L5 {% `0 T$ G, s8 x8 B) E  / b/ Q% C7 z: N8 E
    1.设置编译器:7 }3 @/ [( ~; |
    在确定安装好Matlab Compiler后,还需要对Compiler进行适当的配置,方法是在Matlab命令窗口输入:  y, m6 l1 ~  B! _: u
    Mbuild –setup, 按提示选择matlab自带编译器LCC。  @. H# K+ \* Z
    $ s3 U1 b+ u& R% J+ q
    2.将脚本编译为可执行文件:: J: }! U1 q1 l$ o6 S2 Q
    如项目文件包含:gui.m, gui.gif, fun1.m。
    - @& T: p7 O5 Q2 l. h7 A& B  o/ A& E
    在此路径下命令行输入:mcc –m gui.m,生 成:mccExcludedFiles.log,ReadMe.txt,gui.ctf,gui.prj,gui_main.c,gui_mcc_component_data.c,gui.exe。其中:gui.ctf,gui.exe为脱离matlab环境运行必需的文件。
    $ B* @2 [: @  }( {" [
    , F; H  G1 U7 e3.在未安装matlab的机器上运行可执行程序。
    & l3 W- B* d6 E将R22007b\toolbox\compiler\deploy\win32中的MCRinstaller.exe安装到该计算机上,将生成可执行程序脱离matlab运行所需的函数库。2 O6 _7 F" X, d, X) w5 r+ C
    将2中生成的gui.ctf,gui.exe拷贝到该计算机同一路径。运行gui.exe将生成gui_mcr文件夹,包含程序运行所需的库。至此完成。
    ) D5 O. I' T$ B# x2 G5 @6 c. s# X' J
    3 X: `5 V' s# p" w2 o  u4.去除独立可执行程序运行时的“DOS黑窗口”。' U. }- _  j7 V6 M  ]- D$ [
    以上生成的exe程序运行时首先弹出一个DOS界面窗口,如果不需要其输出数据和错误信息,可将其去除。
    % \6 U# S- d. ?- A  u, ^. d% u8 l: R+ \
    matlba命令行输入:$ j8 ~% R  x  C4 C$ w9 n
    5 S! r; H8 ^6 O( j3 i$ j
    cd(prefdir)
    # l, F: o: G1 k4 h( D  M6 Dedit compopts.bat
    % W- V8 t8 Y4 x0 N9 m8 e
    " b0 ?: v8 X' p! a4 t2 y/ y' M2 r此时compopts.bat打开,在文件最后添加:: e$ m$ o8 U$ A: y( f
    0 h3 F/ Y# W; H9 ~" g4 o. T" P
    set LINKFLAGS=%LINKFLAGS% -subsystem windows  d2 e4 E* `8 S) X0 h! n

    % V& [- P4 J/ F( B如果程序比较复杂,易出现异常,则不建议去除这个dos窗口以便调试。5 ^$ Y: m7 O9 c9 ?0 V- z

    : ^1 D7 {2 E# s+ }* D% m! x) L另外,这个办法是适用于你用的编译器为LCC,如果是其他的,那么所加语句有所不同! J5 ]5 F0 W* j, J9 a3 \
    1 }- {; e% _8 e' E
    Microsoft Visual C/C++:$ I" C0 a" m  i# R3 s  k
    7 r, m1 y8 o" r0 Q# H& m' \; |
    set LINKFLAGS=%LINKFLAGS% /SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup
    1 n' C' G$ E4 o9 Y: W6 i
    0 B+ l' ]% M  O$ \Borland:
    ! t7 e! Z3 T0 E  G* L$ b
      l0 g% `0 u7 w/ F( W5 Q( q' m6 Eset LINKFLAGS=%LINKFLAGS% -aa4 j& {8 o" Z! g$ ?! L1 W
    ———————————————————————————————————————–
    4 S" u) z) q" i, t$ J# a% m/ r! p
    5 q( `3 x6 q0 I" L' g方法一:  ^3 _4 C0 G/ [  f4 K9 `2 k
    已有gui.m文件和gui.fig文件
    " y* @& N1 I' r* m1 在matlab的command窗口中输入8 g+ H7 l; Y( J# e) r
    mcc -B sgl GUI.m
    + L  |- G# R- l& y  c2.将上步生成的文件包括*m 文件和*.fig文件一起考到待运行的机器9 p7 S$ z& R- X
    6 R( C: h. o" U: A4 M; u
    此时仍需matlab所必需的动态连接库。9 l7 W- W5 Y  X1 _" x
    3. 将 /extern/lib/win32/mglinstallar.exel拷贝到到待运行机器上
    : u3 S; E& q4 e/ j/ {4.在机器上先运行mglinstallar.exe, 然后选择解压目录,将在将在指定目录下解压缩出bin和toolbox两个子目录,
    ! ^3 w/ N! T* k* u3 l! m0 v其中在bin\win32目录下就是数学库和图形库脱离MATLAB运行所需的所有动态连接库,共# G5 V* @3 l' U% |9 @8 e' v
    有37个。可以将这些.dll考入system32, 也可以直接放在应用程序目录下。" q& ^- q7 k8 ]5 ~$ d
    而toolbox目录则必须与应用程序同一目录。/ i1 }2 D& m; r" q) k1 i

    4 a- b3 u+ ^5 `3 p( w" `# _5 f4 K方法二:7 Z4 H, ~1 B! F, j  S7 L
    7 E0 e) F' C' Q( o
    matlab编程很方便,强大的矩阵运算功能,很多好用的工具箱,但是一般程序都要在matlab环境中运行,能否脱离这个环境打包发布呢,matlab 也提供了这样的工具。. A$ f/ t( Z; I( L: E8 F& U/ }4 _/ r

    ' s: ]/ x7 |! N/ L$ S% _! w1. 转化为c/c++程序并编译为.exe: j. p- D  M) m- v: X6 G
    先验证mcc是否可用,用matlab中的example验证即可
    " X+ a2 X2 x8 i建议不用matlab默认的lcc 编译器(可能有问题),可使用VC6编译器(按默认路径安装)/ M  r) {  O+ D, ]! j+ o2 B
    由于带有界面,需要图像库支持,编译时应使用命令: mcc -B sglcpp pressure  p, X  p0 L' c1 N( ?/ {4 ]
    编译生成若干c/c++源码,以及.exe文件、bin目录中figure菜单条/工具条文件(.fig)等: k* _. @5 P0 [$ {/ a
    程序发布需要.exe、bin\、.fig7 p* q. _  m! e# b* a8 Q# K, h2 k2 K

    5 N+ ?/ Z" a* S  {5 K  W( m2. 在未装matlab的电脑上运行程序需要数学运行时库、图像运行时库以及用到的工具箱mex文件
    % J/ R6 e+ X9 X6 K前两者已经在\matlab\extern\lib\win32mglinstaller.exe压缩包中,将其解压,并在环境变量path中添加解压到的路径
    9 S, o- J+ d6 A2 Z- ~) W另外若程序中还用到其他工具箱的东西,那么需要将此工具箱中需要的mex文件也一并放在解压到的路径,子文件夹位置与matlab中的位置相同) W2 Z/ l& l# j3 L7 [
    - J: ]5 U0 D3 |/ X# n
    3. 在确保.exe程序可以运行的情况下 可以用setup factory打包发布
    8 }. I. K- M& P8 G5 o以下通过注册表自动添加path路径2 _8 M9 m# W: V! V' \
    %————————————————————————————–
    + Y! N0 o5 b. _Screen.Next(); — 进入下一个屏幕! U2 N# s; C- ]' c! Z  n( v# f$ R
    resultDialog = Dialog.Message(“注意”, “向环境变量中加入matlab数学库及图象库的安装路径?”, MB_YESNO, MB_ICONINFORMATION, MB_DEFBUTTON1);
    ) t- Z8 L5 \4 X: lif (resultDialog == IDYES) then –加入安装路径& v. M2 e5 X* j( C3 }
    strPath = Registry.GetValue(HKEY_CURRENT_USER, “Environment”, “path”, true);
    / f% _$ x5 z2 C0 G6 k, i( y+ v if strPath ~= “” then1 ]/ Y! [! F& l6 g7 E5 B- s  ]
    strPath = String.Concat(strPath, “;”);
    % Y  L! Y* J% |' ~$ L7 [/ e& b' }end3 y2 c  b: b8 Y+ H- t/ w, V0 L2 H
    strPathToAdd = SessionVar.Expand(“%AppFolder%”);
    " E' d. U/ D% KstrPathToAdd = String.Concat(strPathToAdd,”file://MATLAB6p5//bin//win32″);
    ( l6 H" H, F2 C+ e6 S— 如果路径中无该位置,则加入, ?4 k9 Q4 p. g# H7 u
    if String.Find(strPath,strPathToAdd) == -1 then* ]; h. K7 e& o' N7 ^9 [  P7 l, c
    strPath = String.Concat(strPath, strPathToAdd);3 ]' {4 P/ E* l& N# K& M9 C& I' t
    Registry.SetValue(HKEY_CURRENT_USER, “Environment”, “path”, strPath, REG_SZ);/ Z$ L7 ^; i8 ~1 z* t
    end
      T+ s: Z+ _% K" m5 F& bend8 N5 R) h9 l- V
    %————————————————————————————–
    " v& M* m$ Q8 G# p- `方法三:3 B' j" k, @9 x  K
    在网上搜了一个方法,还没有用过, 贴在这里仅供参考:
    3 Z; U1 C! ~' _( C" M( c  T& y一、 完全可以,而且生成的.exe文件可以在没有安装matlab的机器上使用,方法吗---+ [8 v+ G8 {6 u1 A8 e5 r
    首先,使用mcc编译得到.exe文件,具体参数见帮助文件;% Z5 U) q, G" g* a$ X2 ^' W
    其次,将.exe文件及相关资源文件以及一个称为mglinstaller.exe的软件包一起拷到别的机器上,运行mglinstaller.exe,并添加环境变量path,即可执行.exe文件8 {. u. t2 X, Q
    第三,在MATLAB环境,执行命令  E7 z9 c0 ?1 I9 W2 i, p# r  I
    mcc -m -B sgl file.m
    , a, P8 d8 q  _或者 mcc -p -B sglcpp file.m2 N& D7 I5 R) p4 k, C! R! P
    请键入help mcc看帮助。$ R  P0 n. f8 D5 C9 ~. l
    mcc是在“command windows” 用的吗?% z" R: Z9 l8 S9 h' L
    只要“mglinstaller.exe”,与.exe文件及相关资源文件就可以了吗.
    2 L* e' f( b1 Z( |; b还有“添加环境变量path”是path到.exe文件的环境中是吧?+ w/ G& l5 O& X
    , x; |0 D8 p5 l  }  V- N
    二、 在matlab下的workspace里打comtool,点file-open project将我们先前建好的 comtest.cbl工程文件打开,再点component–package component就实现了打包,此时到 comtest\distrib文件夹里看,生成的comtest.exe就是打包后的解压程序,双击它会解压出一些文件,再点击解压出来的 _install.bat就可以实现安装
    7 Y. h; c1 V+ n/ `; Q; s: X/ _, X三、 如何将gui生成exe ?; `' b1 L0 O9 o. p
    已有gui.m文件和gui.fig文件
      I0 d2 k& {; {4 k1 在matlab的command窗口中输入8 V, c& M/ N3 h, C
    mcc -B sgl GUI.m  Q8 h' T1 O4 y5 L0 Q1 C$ K
    2.将上步生成的文件包括*m 文件和*.fig文件一起考到待运行的机器
    * F3 T) b( z* n. d  p此时仍需matlab所必需的动态连接库。4 I3 ?' g) _- f9 V. c
    3. 将 /extern/lib/win32 /mglinstallar.exel拷贝到到待运行机器上0 c/ Y6 D% R7 Y1 A9 @2 e# m' e( S7 z- t
    4.在机器上先运行mglinstallar.exe, 然后选择解压目录,将在指定目录下解压缩出bin和toolbox两子目录,其中在 bin\win32目录下就是数学库和图形库脱离MATLAB运行所需的所有动态连接库,共有37个。可以将这些.dll考入system32, 也可以直接放在应用程序目录下。而toolbox目录则必须与应用程序同一目录。' K" `, J( w' v1 m) V) M( W& k
    5.大功告成。 / e# I( e2 i- C" D
    7 o, C- C7 y, h* W0 ?# \
    外一篇:MATLAB M文件变exe文件+ F1 }+ Y/ b, t# @
    我也是最近才搞定的这个问题,按下述步骤进行,就没有问题,我已经运行成功,但是遇到你程序的bug的话,便会出现错误,关闭整个程序6 i2 l6 R. |2 c: Y# F: y
    希望这些对你有用/ p9 e# ]/ h5 g2 l" k
    7 p$ B5 @. |  ~1 B. z9 O* H
    如何将MATLAB程序编译成独立可执行的程序?如何将编译好的独立可执行程序发布在没有安装MATLAB的电脑上?下面将一步步实现:+ h* z0 W: T8 h1 W: C+ @) R. c

    " a! l4 k! I' L, c. t一、生成独立可执行的程序(exe文件)步骤: a2 c- E3 @" s" g

    ( m# T3 k" w' n& C" _6 x; C1 x1、安装编译器。可有多种选择,matlab自带了一个LCC,推荐使用VC++6.0,我基于VS 2003实现。
    2 w) z. S3 q, ^, ?6 i$ u2、设置编译器。在matlab命令行输入mbuild –setup以及mex –setup,选择安装的c编译器。# ^' Q2 C  V* e5 R
    3、调用编译器。此处使用MATLAB下的一个GUI平台deploytool下完全实现。在命令窗口输入deploytool即可看到。具体使用方法请Help。
    " E$ S( E. \- u1 u/ a; ?当然,也可以输入mcc -m filaname, filaname为要转成exe的m文件;1 @- k' Q1 m8 ?- f' w% a
    注:在以前的版本中,用编译命令mcc -B sglcpp filaname;自2006的版本后,替换为mcc -mfilaname;
      S7 h& l( [+ v% m4、安装\toolbox\compiler\deploy\win32目录下的MCRInstaller。) t, X& s& h+ W! g/ C

    , w0 M$ s5 f' C) T; }6 [二、脱离matlab运行可执行程序3 ^! H$ F5 z8 G$ L
    MCR是由matlab的运行环境,占用不到300M的对于用不同matlab版本生成的exe文件,MCR版本也会有不同,因此,在程序打包时,最好将相应版本的MCR一起打包。MCR环境的设置文件存放目录如下:
    ! r: N; ]6 }, Z+ w3 P \toolbox\compiler\deploy\win32
    8 \6 q; C0 x7 o) D! x文件名为MCRInstaller.exe。可将其拷贝到自己的文件夹中,(7.0以前的版本是mglinstaller.exe)。
    8 ?  J& _5 {7 k* ]在MATLAB里运行可执行程序的办法是在前面加一个!,比如:!picshow,后缀名可有可无。" w& }; J7 W5 f; R1 ^
    在其它没有安装matlab的机器上运行exe文件前:
    ! }7 T0 r% @2 w6 O' Z首先安装matlab的运行环境。在同一机器上可以并存不同版本的matlab环境(换句话说不同版本不兼容)。
    - h! E% }% O- \; S4 R0 ]其次是要将“MCRinstaller.exe安装目录\runtime\win32”这个路径添加到该计算机的环境变量中,通常是自动加载。
    9 r+ G* a; {7 B  V6 {1 [如果没有,也可手动安装,添加的方法是:
    ; x- d+ `8 H" b; H" }右击“我的电脑”“属性”“高级”“环境变量”“添加”指定一个变量名,然后将上述路径复制到里面就可以了。
    3 d9 I$ @2 ^! o' S/ q& b' s3 A! H注:在安装过程中会弹出让安装Microsoft.NETFramework可以不用安装。
    ! W' `9 }5 i8 N/ ~/ T最后就是将编译生成的相相关文件拷贝到同一目录下,双击即可运行。
    % C: K. W4 ]) |问题:目前此方法可完全运行在没有安装MATLAB以及C/C++的电脑上,但是如果是在AMD的CPU可以运行,但是不会出现任何MATLAB编译的界面。
    7 `) @- y/ V4 q$ |1 v美中不足就是,运行的时候dos的那个黑色地窗口一直存在。下面将实现去除黑屏的办法:! v! D2 e! I  Q5 ^8 [/ O

    ; b: A4 g6 s. n; v+ |消除运行MATLAB生成的exe程序的dos黑屏的办法
    4 h) u$ ]# n+ r3 W" {8 H' o基于MATLAB生成exe文件后,每次运行都存在dos黑屏的问题,现在可以通过以下方法解决:
    7 F2 _/ L# {5 o+ S/ P9 G  g) J1 |方法一: 在命令窗口输入:
    . ~% H3 b2 f7 ~cd(prefdir)% K) X3 Q: H3 H' f
    edit compopts.bat% _' H, c+ k0 h( ^7 g. h
    在打开的文件最后添加以下语句:  E" s+ d- s9 S5 n0 y; |

    - x% W: [! J6 Y+ Q* }# c- RA.VC环境下:
    2 T$ @3 l' I/ w, q
    ; Y0 E$ `0 w7 h3 M3 o4 ^- B: lset LINKFLAGS=%LINKFLAGS%/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup . f7 w! M$ s) S7 V% k9 V

    + g; b1 x2 u$ _B.LCC环境下:! V- e3 \: B) `
    set LINKFLAGS=%LINKFLAGS% -subsystemwindows / w3 \, b5 P3 P$ [8 s- O( H; P

    ' L1 Z; N8 g( a, b( F$ `+ a% `C. Borland:9 K, A* l7 {- f: z& V+ P7 w
    set LINKFLAGS=%LINKFLAGS% -aa& f- r; c" b( n% O

    ; D; C* w% `. A! V  F4 h# f保存以后,再重新编译m文件,生成的exe文件运行起来就没有dos窗口了; H3 l, f$ c7 M0 j0 b, f6 J9 _2 {

    5 H  ^& O1 F3 u方法二:使用suppress工具:. G" C% U$ t+ d- `6 _" W
    下载附件中的suppress压缩包后解压,(当然您可以自己去Google然后再下载)会看到一个suppress.ini文件,用记事本打开,然后将 其中“Name=test.exe”中text.exe的改为你生成的exe文件名。将suppress.exe(有个关盘和显示器的图标),改后的 suppress.ini放到你生成的exe的同目录下。执行suppress.exe或者您自己生成的exe可以了。当然您可以自己修改 suppress.exe的名字,改为您自己想要的名字。
    , F' E& j8 S2 R* T6 ]( G
    $ ]! k6 V. b) M3 P9 ]. \其中的方法一在使用后生成的exe再到没有任何安装MATLAB的机子上运行也不会有黑屏了。1 j, L- x$ Y+ C- K0 x8 e4 g
    方法二的缺点就是要同时存在您生成的exe以及supress.exe,必须在同一目录下。5 z" F- ~  i' h1 i( K+ E
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    2

    主题

    6

    听众

    117

    积分

    升级  8.5%

  • TA的每日心情
    开心
    2013-9-18 23:25
  • 签到天数: 53 天

    [LV.5]常住居民I

    群组Matlab讨论组

    群组2013认证赛A题讨论群组

    群组数学建模

    回复

    使用道具 举报

    15

    主题

    10

    听众

    799

    积分

    升级  49.75%

  • TA的每日心情
    开心
    2015-7-17 20:50
  • 签到天数: 68 天

    [LV.6]常住居民II

    自我介绍
    我是一名大二学生。

    群组2013年国赛赛前培训

    回复

    使用道具 举报

    eagle1208 实名认证       

    1

    主题

    4

    听众

    25

    积分

    升级  21.05%

  • TA的每日心情
    开心
    2014-1-10 19:20
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-4-9 20:43 , Processed in 0.607573 second(s), 72 queries .

    回顶部