QQ登录

只需要一步,快速开始

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

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

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

24

主题

8

听众

2285

积分

升级  9.5%

  • 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等的文章很少大都是那几个 ,我自己在网上找了些东西总结了下:
    - q! v, ?- ]) L; ^& r% S4 ~8 W, }- ]/ n" v& b/ R
    1.Matlab环境设置
    要建立独立运行的C应用程序,系统中需要安装MatlabMatlab编译器、C/C++编译器以及Matlab C/C++数学库函数和图形库函数。/ P! n/ |2 o( A8 t! k, N( j* F
    Matlab编译器使用mbuild命令可以直接将C/C++源代码编译为独立运行程序,在这些源代码中可以使用Matlab提供的接口来调用Matlab数学库函数。" e& H2 {$ c. ~& L
    虽然生成的可执行程序可以脱离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
    ! f; C" r9 P& V# {8 \5 Plibmat.lib
    9 m; k7 N$ K' Zlibmex.lib3 ~6 T4 q9 ~# s3 q4 z# A
    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"

    & n0 }7 t% a8 l. I% i4 p  , H+ H- R6 `, k5 l$ u3 b% q" j) K5 v
    1.设置编译器:
    % L7 \& g4 O$ h9 {' S% W在确定安装好Matlab Compiler后,还需要对Compiler进行适当的配置,方法是在Matlab命令窗口输入:
    ; q. h4 i& V6 x" n- `7 [Mbuild –setup, 按提示选择matlab自带编译器LCC。
    : {, v2 p0 T. M9 k# B
    * P6 }/ i& K0 F0 ?" [$ {2.将脚本编译为可执行文件:
    8 }- ?9 Y2 [" w/ {# B如项目文件包含:gui.m, gui.gif, fun1.m。
    0 l3 J8 I5 t: q4 r- K
    ) I1 ^$ d+ R5 R/ r在此路径下命令行输入: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环境运行必需的文件。
    2 H# N2 t  o6 K) I; T1 P9 Z" [, V
    3.在未安装matlab的机器上运行可执行程序。9 n  i6 a; N* f! n% I5 A
    将R22007b\toolbox\compiler\deploy\win32中的MCRinstaller.exe安装到该计算机上,将生成可执行程序脱离matlab运行所需的函数库。( t4 ]8 {8 n2 K! z: |, ]4 z
    将2中生成的gui.ctf,gui.exe拷贝到该计算机同一路径。运行gui.exe将生成gui_mcr文件夹,包含程序运行所需的库。至此完成。  {- V) ^3 J. x: @- x( u
    & X3 g9 C! ]7 d
    4.去除独立可执行程序运行时的“DOS黑窗口”。" m0 j  ?0 C. Z$ S
    以上生成的exe程序运行时首先弹出一个DOS界面窗口,如果不需要其输出数据和错误信息,可将其去除。
    ) b' X+ @: G9 n2 [9 c
    ! b2 T2 D$ ?/ u* H  Ematlba命令行输入:0 e* ]* Y0 D- t* Q7 x6 }% {$ R8 X
    4 Y; m, u# j/ ^
    cd(prefdir)5 ]1 ^6 d6 b% m/ X
    edit compopts.bat( y, }5 C0 e+ J  |/ V  y

    0 G6 y5 c6 q% F9 |2 \此时compopts.bat打开,在文件最后添加:% O2 o, C: p. c
    2 I& J: W, u( B3 c% [
    set LINKFLAGS=%LINKFLAGS% -subsystem windows
    $ b/ X+ K# h7 c  [8 l0 u3 p( j
    ! E0 M+ @' d4 o! k* z  v如果程序比较复杂,易出现异常,则不建议去除这个dos窗口以便调试。
    ! V! S! l. w. o3 h' R" D& I+ w* A3 T4 r; r0 r; ?
    另外,这个办法是适用于你用的编译器为LCC,如果是其他的,那么所加语句有所不同
    & ]+ I: o& h) U: N* w6 E/ u: M2 f8 v
    Microsoft Visual C/C++:5 M7 a$ L7 a8 J. e* U( q
    % i: A% m0 n! I5 |2 I; N; J
    set LINKFLAGS=%LINKFLAGS% /SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup' i9 y; ^$ C  C5 D- v% `& F

    ; c6 ^" `6 f$ y2 E: qBorland:) [/ T6 G: Q2 P. t9 m9 |

    " K' y* L# d: Wset LINKFLAGS=%LINKFLAGS% -aa
    2 u. P) x$ ^8 Y' H———————————————————————————————————————–
    % j: j  V( L0 j: x9 o
    1 [6 m8 [$ k1 r7 I& n9 g' Q方法一:
    " H; N9 @, P$ o6 s已有gui.m文件和gui.fig文件% @1 a# s2 t: |/ S6 D0 r
    1 在matlab的command窗口中输入5 X2 c9 g, E0 k# [# v2 k
    mcc -B sgl GUI.m/ ]% t; `# T4 T" r
    2.将上步生成的文件包括*m 文件和*.fig文件一起考到待运行的机器
    & Y* e4 B* ^( X; z% H8 I
    7 R# d9 J+ x* {) |7 g2 C此时仍需matlab所必需的动态连接库。
    5 ?$ V4 w6 U6 o4 G$ Y0 }4 m3. 将 /extern/lib/win32/mglinstallar.exel拷贝到到待运行机器上( ?' `. h. f# d9 h
    4.在机器上先运行mglinstallar.exe, 然后选择解压目录,将在将在指定目录下解压缩出bin和toolbox两个子目录,
    ' a* c# N# y" f8 Q+ l6 r) A其中在bin\win32目录下就是数学库和图形库脱离MATLAB运行所需的所有动态连接库,共
    2 [3 a( k. ^  p0 H! }: x. W有37个。可以将这些.dll考入system32, 也可以直接放在应用程序目录下。
    9 C. y. A/ S  P7 y4 l而toolbox目录则必须与应用程序同一目录。
    " t! l' m/ ]6 ?5 \1 i* t4 I6 v) [5 K3 H1 U- u
    方法二:
    / `8 U3 V4 D1 E" D: M& i. ~/ }, ?9 ]2 l
    matlab编程很方便,强大的矩阵运算功能,很多好用的工具箱,但是一般程序都要在matlab环境中运行,能否脱离这个环境打包发布呢,matlab 也提供了这样的工具。
    : v0 ~' {# g7 n/ ?# m* M% l$ |7 p( E4 S/ \+ d
    1. 转化为c/c++程序并编译为.exe
    ; J$ H) ~2 Q2 m: o& }" D6 l先验证mcc是否可用,用matlab中的example验证即可
    ( F0 Q/ l# K; x建议不用matlab默认的lcc 编译器(可能有问题),可使用VC6编译器(按默认路径安装)
    3 U4 o& N# b! w* D由于带有界面,需要图像库支持,编译时应使用命令: mcc -B sglcpp pressure
      p1 ]% X* }: a  c9 R5 o4 F: ]- l编译生成若干c/c++源码,以及.exe文件、bin目录中figure菜单条/工具条文件(.fig)等- E) d. b& M  a% ?! u
    程序发布需要.exe、bin\、.fig
    $ u  R& N, C3 l$ s- J! X) v% p- t& T2 ~. X
    2. 在未装matlab的电脑上运行程序需要数学运行时库、图像运行时库以及用到的工具箱mex文件4 B1 \6 i  [! d
    前两者已经在\matlab\extern\lib\win32mglinstaller.exe压缩包中,将其解压,并在环境变量path中添加解压到的路径) j6 x, I4 R* Q
    另外若程序中还用到其他工具箱的东西,那么需要将此工具箱中需要的mex文件也一并放在解压到的路径,子文件夹位置与matlab中的位置相同# A% I; o. @0 L7 Z) n# W/ M2 s
    : T; y" n! N  D" |
    3. 在确保.exe程序可以运行的情况下 可以用setup factory打包发布, |- T( j2 S" I. l+ U. k2 q! f
    以下通过注册表自动添加path路径
    5 J! }7 i$ v1 N% c0 s  n  p%————————————————————————————–' _2 v9 j/ G2 q
    Screen.Next(); — 进入下一个屏幕
    % v) [7 [7 \4 m, ^! PresultDialog = Dialog.Message(“注意”, “向环境变量中加入matlab数学库及图象库的安装路径?”, MB_YESNO, MB_ICONINFORMATION, MB_DEFBUTTON1);' X9 K* }( t7 W6 g/ G
    if (resultDialog == IDYES) then –加入安装路径: T$ \( J7 G- u2 Z6 L
    strPath = Registry.GetValue(HKEY_CURRENT_USER, “Environment”, “path”, true);
    / i  d5 A4 d  v3 n0 O9 N) z: o: \* ^ if strPath ~= “” then
    6 y; v# c4 r& y3 k, [, a; s- R strPath = String.Concat(strPath, “;”);' B; ?  w+ n- b: v7 I5 I2 g5 ~' i9 F. a
    end- c# |  a1 M/ l2 ?! u3 Z
    strPathToAdd = SessionVar.Expand(“%AppFolder%”);/ `" ~6 g. ?2 x2 v( i' {
    strPathToAdd = String.Concat(strPathToAdd,”file://MATLAB6p5//bin//win32″);
    ) d0 Z5 T  r8 B2 B+ O! a— 如果路径中无该位置,则加入4 E2 w+ t5 |" I: Y  S
    if String.Find(strPath,strPathToAdd) == -1 then
    8 [) ~- @9 P7 b5 q( o8 T: E strPath = String.Concat(strPath, strPathToAdd);
    : K" [. `& N1 s$ y9 F3 p! A6 |& ]  q Registry.SetValue(HKEY_CURRENT_USER, “Environment”, “path”, strPath, REG_SZ);6 `$ G7 V- x& }
    end- |9 Y0 G2 O/ K; U
    end
    1 E- T8 ^; f# j% F7 Z%————————————————————————————–
    4 C/ d$ g1 c$ P8 Z5 B8 L4 ]方法三:
    6 y  O8 T6 ]3 @  B- a9 B) l在网上搜了一个方法,还没有用过, 贴在这里仅供参考:
    " b3 h7 g: d5 E% ^一、 完全可以,而且生成的.exe文件可以在没有安装matlab的机器上使用,方法吗---' [( ^9 _6 x) v) H- d, B; c% P
    首先,使用mcc编译得到.exe文件,具体参数见帮助文件;2 ^9 U  m: E" s3 [3 M  U$ B
    其次,将.exe文件及相关资源文件以及一个称为mglinstaller.exe的软件包一起拷到别的机器上,运行mglinstaller.exe,并添加环境变量path,即可执行.exe文件+ |: y* M4 z3 R5 ~6 C+ s5 `5 k" c* I
    第三,在MATLAB环境,执行命令
    ) n6 G: c- x1 z2 tmcc -m -B sgl file.m
    ( s7 x& n2 z7 M" a- r或者 mcc -p -B sglcpp file.m
    4 J( A2 Z/ Y0 n6 f2 C, n请键入help mcc看帮助。- J* x' f1 n, Y$ V0 |
    mcc是在“command windows” 用的吗?. R6 p5 H- ]1 |) j6 h8 s9 L7 O
    只要“mglinstaller.exe”,与.exe文件及相关资源文件就可以了吗.0 R. I9 J* V& `$ z
    还有“添加环境变量path”是path到.exe文件的环境中是吧?
      j6 p0 K# H9 K3 k$ m6 X
    8 c9 e- P4 }7 B二、 在matlab下的workspace里打comtool,点file-open project将我们先前建好的 comtest.cbl工程文件打开,再点component–package component就实现了打包,此时到 comtest\distrib文件夹里看,生成的comtest.exe就是打包后的解压程序,双击它会解压出一些文件,再点击解压出来的 _install.bat就可以实现安装3 ?: [6 {3 q8 p1 v
    三、 如何将gui生成exe ?% z6 X4 \: u% ~) F" b+ Z) `- Q1 o
    已有gui.m文件和gui.fig文件
    ( O: f9 f/ x: t1 在matlab的command窗口中输入" b1 u( ]0 Q; W/ O2 a  @( j
    mcc -B sgl GUI.m
    & ~8 Q- z6 A) ?! [, p9 H7 r2.将上步生成的文件包括*m 文件和*.fig文件一起考到待运行的机器
    + _/ I- q. e9 Y+ _此时仍需matlab所必需的动态连接库。
    3 O( d* Y& b! r3. 将 /extern/lib/win32 /mglinstallar.exel拷贝到到待运行机器上- l/ z  q2 U4 J( [7 B! y9 c& }
    4.在机器上先运行mglinstallar.exe, 然后选择解压目录,将在指定目录下解压缩出bin和toolbox两子目录,其中在 bin\win32目录下就是数学库和图形库脱离MATLAB运行所需的所有动态连接库,共有37个。可以将这些.dll考入system32, 也可以直接放在应用程序目录下。而toolbox目录则必须与应用程序同一目录。
    2 l" O+ X% ]6 H# O5.大功告成。 6 f- }$ z! M3 E( a, {+ g0 N
    , [6 a% s2 A- V$ X2 a
    外一篇:MATLAB M文件变exe文件% F  A: ^: @; L2 d8 V& T
    我也是最近才搞定的这个问题,按下述步骤进行,就没有问题,我已经运行成功,但是遇到你程序的bug的话,便会出现错误,关闭整个程序
    + E  i6 [; U7 n) ^! ]希望这些对你有用/ n3 R7 Z! E  P+ k3 [5 r
    1 A" z, y5 h2 P  h% Y
    如何将MATLAB程序编译成独立可执行的程序?如何将编译好的独立可执行程序发布在没有安装MATLAB的电脑上?下面将一步步实现:
    ! s* x4 B# E- X& X# t9 T& v8 F: a: |
    一、生成独立可执行的程序(exe文件)步骤. L! e. x5 x6 u# C

    8 l1 _" q3 M& Q6 J' j: u+ ]" d( S1、安装编译器。可有多种选择,matlab自带了一个LCC,推荐使用VC++6.0,我基于VS 2003实现。3 E6 k: w. B1 n7 T7 ^( ~8 D: W  I8 b6 N: y; a
    2、设置编译器。在matlab命令行输入mbuild –setup以及mex –setup,选择安装的c编译器。
    " D% t* `3 A2 ?" J8 D, }3、调用编译器。此处使用MATLAB下的一个GUI平台deploytool下完全实现。在命令窗口输入deploytool即可看到。具体使用方法请Help。
      `7 F% K; M$ m2 R6 Z- c当然,也可以输入mcc -m filaname, filaname为要转成exe的m文件;. k) f2 Z' Z( W* l; d
    注:在以前的版本中,用编译命令mcc -B sglcpp filaname;自2006的版本后,替换为mcc -mfilaname;9 c) l8 s; l3 C$ D6 O3 t6 N  f
    4、安装\toolbox\compiler\deploy\win32目录下的MCRInstaller。
    : V) n" P( d) R% H# n6 q& Q# ?: \! w! M' r) ?' G, q5 V
    二、脱离matlab运行可执行程序
    : c+ c: h' X; Q( j& RMCR是由matlab的运行环境,占用不到300M的对于用不同matlab版本生成的exe文件,MCR版本也会有不同,因此,在程序打包时,最好将相应版本的MCR一起打包。MCR环境的设置文件存放目录如下:
    * l  f5 u+ _, x) k$ l; E! e+ l  W2 ?8 } \toolbox\compiler\deploy\win32
    ' b+ k# x0 a, u/ d! g$ v文件名为MCRInstaller.exe。可将其拷贝到自己的文件夹中,(7.0以前的版本是mglinstaller.exe)。- a% O( J; r& q# i) k) z9 ~
    在MATLAB里运行可执行程序的办法是在前面加一个!,比如:!picshow,后缀名可有可无。2 Q* u; @' ~. |) _4 o3 |
    在其它没有安装matlab的机器上运行exe文件前:
    - R$ ]2 Z! \) A1 {首先安装matlab的运行环境。在同一机器上可以并存不同版本的matlab环境(换句话说不同版本不兼容)。7 _! X# s0 o: u6 L& [
    其次是要将“MCRinstaller.exe安装目录\runtime\win32”这个路径添加到该计算机的环境变量中,通常是自动加载。
    5 F- S9 L0 T; R5 B' b如果没有,也可手动安装,添加的方法是:4 F! r4 X+ A7 b3 u) s6 \
    右击“我的电脑”“属性”“高级”“环境变量”“添加”指定一个变量名,然后将上述路径复制到里面就可以了。
    # [! ~, _4 f. ]; d1 ?注:在安装过程中会弹出让安装Microsoft.NETFramework可以不用安装。
    1 i( V0 A0 y* J' D0 h1 l8 x最后就是将编译生成的相相关文件拷贝到同一目录下,双击即可运行。/ ?( R2 q1 G" ~* |) W: V
    问题:目前此方法可完全运行在没有安装MATLAB以及C/C++的电脑上,但是如果是在AMD的CPU可以运行,但是不会出现任何MATLAB编译的界面。6 [% L) i0 ?3 [
    美中不足就是,运行的时候dos的那个黑色地窗口一直存在。下面将实现去除黑屏的办法:* J+ I& c# Q7 Z3 T4 D( G3 I

    " r" A( c; ^/ N消除运行MATLAB生成的exe程序的dos黑屏的办法3 |) }+ Q0 ?" q1 _5 r3 @
    基于MATLAB生成exe文件后,每次运行都存在dos黑屏的问题,现在可以通过以下方法解决:- O' X5 \# x8 e6 l; ^9 j& o
    方法一: 在命令窗口输入:
    ) D3 v, b. O4 x% K4 e  _. n, t* Gcd(prefdir)' I7 n# Z8 ]% |
    edit compopts.bat3 r3 Y2 }9 z, f' Q6 C/ c
    在打开的文件最后添加以下语句:
    # A7 F! p2 J5 O
    % i; }5 Z2 ~9 E7 |* EA.VC环境下:. F8 F; M/ f: V" k" b

    % s, q! U7 P+ a% h, j- \( jset LINKFLAGS=%LINKFLAGS%/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup , k* ?) b* A% {" N: F8 K, }' \# a
    7 o( ?3 V: I) X- _
    B.LCC环境下:
    ! @6 r) T7 T8 Z+ U, o  Xset LINKFLAGS=%LINKFLAGS% -subsystemwindows % ]" |+ `- t3 H$ ]

    5 Q7 ?% u- I! g5 |, x% IC. Borland:4 @; |' o( D' c" Q: c. W1 N- A- f  M
    set LINKFLAGS=%LINKFLAGS% -aa8 Z6 U# j  e6 l2 }+ ?" G% q  K- _
    0 y$ Y% @7 c4 K
    保存以后,再重新编译m文件,生成的exe文件运行起来就没有dos窗口了
    ; u" K1 n. r: H3 T+ p
    8 t# v, E" U# Z+ @- w方法二:使用suppress工具:
    % b# C' E6 H* Z! P+ l. y! o下载附件中的suppress压缩包后解压,(当然您可以自己去Google然后再下载)会看到一个suppress.ini文件,用记事本打开,然后将 其中“Name=test.exe”中text.exe的改为你生成的exe文件名。将suppress.exe(有个关盘和显示器的图标),改后的 suppress.ini放到你生成的exe的同目录下。执行suppress.exe或者您自己生成的exe可以了。当然您可以自己修改 suppress.exe的名字,改为您自己想要的名字。/ j& }" f, z8 C8 J3 S" X) [

    " W' k4 e1 X, _其中的方法一在使用后生成的exe再到没有任何安装MATLAB的机子上运行也不会有黑屏了。
    9 x! C/ l; r  e- m- M! d! Y方法二的缺点就是要同时存在您生成的exe以及supress.exe,必须在同一目录下。4 ?9 [4 l/ {% W7 J1 z/ ^
    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-5-7 05:18 , Processed in 0.601884 second(s), 74 queries .

    回顶部