QQ登录

只需要一步,快速开始

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

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

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

24

主题

8

听众

2286

积分

升级  9.53%

  • 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等的文章很少大都是那几个 ,我自己在网上找了些东西总结了下:" |& H  g! [/ J3 ?4 \5 N

    ) O, z4 p& E# X4 g
    1.Matlab环境设置
    要建立独立运行的C应用程序,系统中需要安装MatlabMatlab编译器、C/C++编译器以及Matlab C/C++数学库函数和图形库函数。
    * n5 B" X2 D6 \' U/ H. E- q9 g9 T
    Matlab编译器使用mbuild命令可以直接将C/C++源代码编译为独立运行程序,在这些源代码中可以使用Matlab提供的接口来调用Matlab数学库函数。0 R" ^  D  W" S. l7 C
    虽然生成的可执行程序可以脱离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.lib- e8 X* f& u# t: F( ~3 N
    libmat.lib
    ' f3 b: B2 U; R" W7 Slibmex.lib
    9 ~3 Q/ g7 [1 e. `( J4 ]0 ilibmx.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"

    % p. m/ y2 c! R5 o$ }  
    * k! T  Q7 ]( Y$ b1 p1 N1.设置编译器:
    6 |- M2 _/ F0 `' [3 d+ I1 i在确定安装好Matlab Compiler后,还需要对Compiler进行适当的配置,方法是在Matlab命令窗口输入:  E1 M, p' p# \- M1 N% w8 I  R& B1 G
    Mbuild –setup, 按提示选择matlab自带编译器LCC。$ K3 s# P& r" g, T; F/ [8 I( B5 G
    & |, q4 C; |! w
    2.将脚本编译为可执行文件:
    7 K2 h$ g7 q& L如项目文件包含:gui.m, gui.gif, fun1.m。- z6 [  c1 g! m! F3 P8 K5 K; D% r

    2 E6 i  m8 _- f- k在此路径下命令行输入: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环境运行必需的文件。1 l* l  ?0 ?' X! p$ o& H
    0 N8 o: c, b1 p' a
    3.在未安装matlab的机器上运行可执行程序。6 _2 n6 H2 ?( g4 x1 z
    将R22007b\toolbox\compiler\deploy\win32中的MCRinstaller.exe安装到该计算机上,将生成可执行程序脱离matlab运行所需的函数库。6 K' S, p1 }' Q/ a8 k- f( q( G
    将2中生成的gui.ctf,gui.exe拷贝到该计算机同一路径。运行gui.exe将生成gui_mcr文件夹,包含程序运行所需的库。至此完成。
    5 v5 n, j8 s  l
    0 u6 x# B- `" e4 p; S; }4.去除独立可执行程序运行时的“DOS黑窗口”。
    0 H( s7 }3 M+ h0 U  @' K以上生成的exe程序运行时首先弹出一个DOS界面窗口,如果不需要其输出数据和错误信息,可将其去除。+ I4 W) Y: T$ |5 @. V" I

    . ?: J9 h7 X3 P' U0 a0 amatlba命令行输入:5 d' M! }$ R! X

    6 N' O# ]( R( Pcd(prefdir)
    % h( f; z3 I8 K* \4 c# Jedit compopts.bat& [9 i1 p" S+ K) F7 U
    + s- b7 V0 @* z, y: c- z
    此时compopts.bat打开,在文件最后添加:+ o7 U0 U9 k  [  R( L: K+ X
    ) M! n" b& d9 q) K! m
    set LINKFLAGS=%LINKFLAGS% -subsystem windows( {( x) @, ?$ Y, v: D5 V

    $ C% ?5 U$ W3 @( n# a2 m; P如果程序比较复杂,易出现异常,则不建议去除这个dos窗口以便调试。' X: E4 ]  G# P: j7 r5 C
    3 X2 p  k/ j$ S4 V- z# C8 x5 V
    另外,这个办法是适用于你用的编译器为LCC,如果是其他的,那么所加语句有所不同
    " J% d8 s3 Q/ n" @  e( c  r- f7 L* H2 D6 A* M, V( u4 a
    Microsoft Visual C/C++:* i5 A- m* F& ?% K0 Y( E2 P8 l

    & R* l! F5 p2 ]set LINKFLAGS=%LINKFLAGS% /SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup
    ; b; g* M( [- m; J# m: l: A- z% O/ n
    # V3 F9 V; g" V2 }5 e/ @Borland:
    8 v9 J; I5 @- o+ W, S5 H9 p' m! M" k' g/ K
    set LINKFLAGS=%LINKFLAGS% -aa
    , t% _1 r5 K+ T4 K———————————————————————————————————————–3 Q) c" a# X8 x' |

    6 R" H9 n- M4 y1 f方法一:
    7 S% ~& M; {5 c3 I已有gui.m文件和gui.fig文件
    0 v- @3 ?: M5 N; T9 d1 在matlab的command窗口中输入
    7 a4 v& ^$ o- k5 S' |' pmcc -B sgl GUI.m
    ( E, Z4 x7 K' }2 F! c5 a4 \: T2.将上步生成的文件包括*m 文件和*.fig文件一起考到待运行的机器
    ! O% @( k' J  x( E6 T5 g
    3 W6 [$ c) U, T. ^此时仍需matlab所必需的动态连接库。0 ?* e8 {2 U1 h* ?3 e
    3. 将 /extern/lib/win32/mglinstallar.exel拷贝到到待运行机器上8 ^# W) ^$ j: j9 n: i( t. p7 i
    4.在机器上先运行mglinstallar.exe, 然后选择解压目录,将在将在指定目录下解压缩出bin和toolbox两个子目录,  B% J  x( D9 R5 [( [
    其中在bin\win32目录下就是数学库和图形库脱离MATLAB运行所需的所有动态连接库,共# o0 }) A  B7 `3 e
    有37个。可以将这些.dll考入system32, 也可以直接放在应用程序目录下。, v0 C% d9 d  h0 G" m
    而toolbox目录则必须与应用程序同一目录。, @2 J7 ^2 i0 {; z
    # A; }+ [0 P# \* Z+ m
    方法二:  o) {* w2 E0 ?
    4 n8 f. j" g4 m  z! k" e0 z/ p& q
    matlab编程很方便,强大的矩阵运算功能,很多好用的工具箱,但是一般程序都要在matlab环境中运行,能否脱离这个环境打包发布呢,matlab 也提供了这样的工具。
      ^0 l7 g0 u& H; M% [
    . y4 N& Y3 O  l) Q6 ]. P9 V# _1. 转化为c/c++程序并编译为.exe( ~  ?) g9 C  l. A  H* k* ~
    先验证mcc是否可用,用matlab中的example验证即可, P  Y7 O. U  V+ m/ I
    建议不用matlab默认的lcc 编译器(可能有问题),可使用VC6编译器(按默认路径安装)
    0 ]: Q! o1 y! ~. E! D: ]& w由于带有界面,需要图像库支持,编译时应使用命令: mcc -B sglcpp pressure
    ) @6 H2 g% c) r7 I* C- o! G编译生成若干c/c++源码,以及.exe文件、bin目录中figure菜单条/工具条文件(.fig)等
    ; }% q$ ?7 W0 a3 h5 y5 z程序发布需要.exe、bin\、.fig7 M# G1 k- D; d' F- c5 D5 h

    ! R3 T5 v% N, ]* I9 ~# t! R2. 在未装matlab的电脑上运行程序需要数学运行时库、图像运行时库以及用到的工具箱mex文件# `5 H, U7 |" t! o
    前两者已经在\matlab\extern\lib\win32mglinstaller.exe压缩包中,将其解压,并在环境变量path中添加解压到的路径
    + |9 n9 _' u6 l, C9 H' p/ U& a1 t另外若程序中还用到其他工具箱的东西,那么需要将此工具箱中需要的mex文件也一并放在解压到的路径,子文件夹位置与matlab中的位置相同* Y7 w1 j) T# l, I/ Q. L

    ) R& {. [, w; @) c# @0 ^+ |- C3. 在确保.exe程序可以运行的情况下 可以用setup factory打包发布
    4 _, [3 n! v6 i3 d% \% Z5 W以下通过注册表自动添加path路径
    5 j" c0 V1 C: }8 d. n%————————————————————————————–
      K4 k2 \0 O4 M& G5 ?Screen.Next(); — 进入下一个屏幕6 [, d1 ~+ d4 d' ~/ j7 z( Q
    resultDialog = Dialog.Message(“注意”, “向环境变量中加入matlab数学库及图象库的安装路径?”, MB_YESNO, MB_ICONINFORMATION, MB_DEFBUTTON1);4 w" ?. ~7 l& v  G
    if (resultDialog == IDYES) then –加入安装路径
    # h6 t  X! P( A' a* {) x+ nstrPath = Registry.GetValue(HKEY_CURRENT_USER, “Environment”, “path”, true);
    * v5 X/ [# ?  {3 I if strPath ~= “” then8 h2 M; p. t% N
    strPath = String.Concat(strPath, “;”);
    3 E2 _9 a5 u7 k5 Z' D# D+ C7 ]: uend0 J( K* {$ G1 Q2 B4 Z: C
    strPathToAdd = SessionVar.Expand(“%AppFolder%”);& X$ _4 e3 l* |  O) t4 S6 n
    strPathToAdd = String.Concat(strPathToAdd,”file://MATLAB6p5//bin//win32″);
    $ _' U- |2 |5 ?0 |7 {— 如果路径中无该位置,则加入3 {" n5 `. ^; m9 P* L; ~. r" X: w# ]
    if String.Find(strPath,strPathToAdd) == -1 then1 _4 b% M/ L% X4 b4 u/ S
    strPath = String.Concat(strPath, strPathToAdd);! @: I& W4 J0 w7 ?! ~0 E3 g
    Registry.SetValue(HKEY_CURRENT_USER, “Environment”, “path”, strPath, REG_SZ);
    & \- `+ B4 o0 E end, j& T" w. c& g( o- f5 o" R
    end
    # {/ s! r) c  |: X( n2 D; w%————————————————————————————–
    9 M: g+ Y. r/ d+ A1 L+ p5 b5 K方法三:$ z4 B. C; r' D5 L: M% k
    在网上搜了一个方法,还没有用过, 贴在这里仅供参考:/ p& ~) E  }, V: d2 L- x% T
    一、 完全可以,而且生成的.exe文件可以在没有安装matlab的机器上使用,方法吗---2 E1 u& |. I3 G1 v" m) y2 R
    首先,使用mcc编译得到.exe文件,具体参数见帮助文件;
    + X; T0 ^& U5 L' B+ d其次,将.exe文件及相关资源文件以及一个称为mglinstaller.exe的软件包一起拷到别的机器上,运行mglinstaller.exe,并添加环境变量path,即可执行.exe文件8 D  w4 w, k2 K2 x4 Y
    第三,在MATLAB环境,执行命令! g, H& i1 T. l1 F) W' V% U
    mcc -m -B sgl file.m
    7 _" Q9 U  ]/ _" V1 o或者 mcc -p -B sglcpp file.m
    4 L! b  n# p3 w# z请键入help mcc看帮助。
    ) T7 S& n0 X6 s* E0 a, `mcc是在“command windows” 用的吗?0 a4 \  `8 o" d; m* G" R; }
    只要“mglinstaller.exe”,与.exe文件及相关资源文件就可以了吗.9 E$ D+ `4 f' I- _
    还有“添加环境变量path”是path到.exe文件的环境中是吧?5 O6 `3 G, M$ ]+ g
    . e- x2 {' ]0 Z/ J; t
    二、 在matlab下的workspace里打comtool,点file-open project将我们先前建好的 comtest.cbl工程文件打开,再点component–package component就实现了打包,此时到 comtest\distrib文件夹里看,生成的comtest.exe就是打包后的解压程序,双击它会解压出一些文件,再点击解压出来的 _install.bat就可以实现安装' ]7 b, {: R2 h8 |
    三、 如何将gui生成exe ?
    % N$ `6 t9 l2 O5 E+ Q已有gui.m文件和gui.fig文件) I' x% F7 t, i( }
    1 在matlab的command窗口中输入5 [7 T5 D3 E" ?! k5 c
    mcc -B sgl GUI.m
    ( D0 C8 q9 p, V: O0 f8 d2 m8 Q2.将上步生成的文件包括*m 文件和*.fig文件一起考到待运行的机器
    & ~! w6 |1 C# @9 R, C此时仍需matlab所必需的动态连接库。
    ! F% C4 f3 [  {8 e3. 将 /extern/lib/win32 /mglinstallar.exel拷贝到到待运行机器上7 x& s0 A8 ~6 L  i
    4.在机器上先运行mglinstallar.exe, 然后选择解压目录,将在指定目录下解压缩出bin和toolbox两子目录,其中在 bin\win32目录下就是数学库和图形库脱离MATLAB运行所需的所有动态连接库,共有37个。可以将这些.dll考入system32, 也可以直接放在应用程序目录下。而toolbox目录则必须与应用程序同一目录。7 T: N6 p& G% I+ k3 h' L
    5.大功告成。
    ) U, o+ W  `: P: ?9 b# V# k3 U+ \" G$ P2 Y
    # [8 D- J8 i. u$ e* k/ N, ~外一篇:MATLAB M文件变exe文件1 [$ _! H" A+ l
    我也是最近才搞定的这个问题,按下述步骤进行,就没有问题,我已经运行成功,但是遇到你程序的bug的话,便会出现错误,关闭整个程序; s- t/ C4 [4 {
    希望这些对你有用0 c( P5 [" ~* X' z

    6 z6 Y) \1 D. X/ D2 T如何将MATLAB程序编译成独立可执行的程序?如何将编译好的独立可执行程序发布在没有安装MATLAB的电脑上?下面将一步步实现:
    8 }! J! a, n3 s( n7 O% }% [
    7 W' Y8 k9 k' q) [5 A( x一、生成独立可执行的程序(exe文件)步骤# d3 L% U. W% L, X! F

      F1 ?& T! M4 T* x1、安装编译器。可有多种选择,matlab自带了一个LCC,推荐使用VC++6.0,我基于VS 2003实现。3 v' M" f! }4 e# \( [+ o
    2、设置编译器。在matlab命令行输入mbuild –setup以及mex –setup,选择安装的c编译器。
    % V: {1 a$ e- B1 \: P3、调用编译器。此处使用MATLAB下的一个GUI平台deploytool下完全实现。在命令窗口输入deploytool即可看到。具体使用方法请Help。
    2 g- q! k4 |2 c: ^. O当然,也可以输入mcc -m filaname, filaname为要转成exe的m文件;
    ( Z  S/ S( \  X: a- l9 q( _6 Q+ u注:在以前的版本中,用编译命令mcc -B sglcpp filaname;自2006的版本后,替换为mcc -mfilaname;
    + }, ^! t4 m  E4、安装\toolbox\compiler\deploy\win32目录下的MCRInstaller。
    ( ]+ t0 s. s( B9 d  q7 ?. ?, S
    ) f9 {, P: e4 q# `3 M, A2 e( N二、脱离matlab运行可执行程序
    2 i# o) p3 r8 d) [0 S/ d% u/ Y  tMCR是由matlab的运行环境,占用不到300M的对于用不同matlab版本生成的exe文件,MCR版本也会有不同,因此,在程序打包时,最好将相应版本的MCR一起打包。MCR环境的设置文件存放目录如下:
    & v8 j0 `! `# U- J \toolbox\compiler\deploy\win32& ^! P" h7 |$ u5 F
    文件名为MCRInstaller.exe。可将其拷贝到自己的文件夹中,(7.0以前的版本是mglinstaller.exe)。' {! x" Q5 ^3 `' ^* N0 K
    在MATLAB里运行可执行程序的办法是在前面加一个!,比如:!picshow,后缀名可有可无。
    6 O/ I/ z% L" ?5 w7 ~8 f; |在其它没有安装matlab的机器上运行exe文件前:
    # a. F( |' [9 I/ p2 _; k首先安装matlab的运行环境。在同一机器上可以并存不同版本的matlab环境(换句话说不同版本不兼容)。* B) D. e& l6 v0 F1 V
    其次是要将“MCRinstaller.exe安装目录\runtime\win32”这个路径添加到该计算机的环境变量中,通常是自动加载。
    % x( k4 v- _6 _* o% v如果没有,也可手动安装,添加的方法是:
    " r& O* R6 J3 a7 I5 s右击“我的电脑”“属性”“高级”“环境变量”“添加”指定一个变量名,然后将上述路径复制到里面就可以了。
    , q1 ^7 C4 }" T# ?2 p  ^# b, O* n注:在安装过程中会弹出让安装Microsoft.NETFramework可以不用安装。
    $ n3 ^& c1 q9 X2 K+ z最后就是将编译生成的相相关文件拷贝到同一目录下,双击即可运行。! u6 I3 o( I% T( H$ n, R
    问题:目前此方法可完全运行在没有安装MATLAB以及C/C++的电脑上,但是如果是在AMD的CPU可以运行,但是不会出现任何MATLAB编译的界面。( j2 a4 |/ u$ s2 T5 \
    美中不足就是,运行的时候dos的那个黑色地窗口一直存在。下面将实现去除黑屏的办法:
    1 X) v% P, a$ U7 s% e3 n4 z7 u. x1 q. G. T/ Q3 S1 ]+ u
    消除运行MATLAB生成的exe程序的dos黑屏的办法; b2 ?+ Z: n9 b  f: f
    基于MATLAB生成exe文件后,每次运行都存在dos黑屏的问题,现在可以通过以下方法解决:; P* z' W4 ^# B0 b) ^- |
    方法一: 在命令窗口输入:
    / q& R% C* i; k+ q4 kcd(prefdir)( V' S1 M- Q' h' o
    edit compopts.bat
    ; ?* K  l4 g1 {( p在打开的文件最后添加以下语句:) d$ S' a( X+ w& S$ I
    2 y# g- ~7 ]$ Y
    A.VC环境下:
    5 y! z8 Q+ s0 u% m4 L
    # D/ j: z# l. n8 L6 U3 x. F  mset LINKFLAGS=%LINKFLAGS%/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup % Y% M% x, i, b1 U1 {
    ) C" C! q0 c! T$ q- v, U% z  s
    B.LCC环境下:
    ' o. G% b3 l6 U7 Sset LINKFLAGS=%LINKFLAGS% -subsystemwindows
    ; h. A/ t! f* S, r5 P" B  h2 w9 _- N4 c& U& y
    C. Borland:6 }5 b; |1 S9 \; D6 m3 E
    set LINKFLAGS=%LINKFLAGS% -aa
    . D; J0 G( o+ b, n% O& U  g0 P- i, ?& g0 l& o
    保存以后,再重新编译m文件,生成的exe文件运行起来就没有dos窗口了
    & v2 B4 k- N, l
    ! y  z' Z; l% E7 ]+ f9 Q方法二:使用suppress工具:
    . }4 L4 ^6 l; `, S% G下载附件中的suppress压缩包后解压,(当然您可以自己去Google然后再下载)会看到一个suppress.ini文件,用记事本打开,然后将 其中“Name=test.exe”中text.exe的改为你生成的exe文件名。将suppress.exe(有个关盘和显示器的图标),改后的 suppress.ini放到你生成的exe的同目录下。执行suppress.exe或者您自己生成的exe可以了。当然您可以自己修改 suppress.exe的名字,改为您自己想要的名字。
    ; S  {  B. S7 n" T  Y9 o1 ]/ I% d
    其中的方法一在使用后生成的exe再到没有任何安装MATLAB的机子上运行也不会有黑屏了。
    8 I1 P' [* Q9 B4 P. x方法二的缺点就是要同时存在您生成的exe以及supress.exe,必须在同一目录下。
    2 M, U& c( k: S& y( o8 x* R; X) e  J( y
    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, 2025-10-24 12:36 , Processed in 0.853347 second(s), 71 queries .

    回顶部