QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 13946|回复: 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等的文章很少大都是那几个 ,我自己在网上找了些东西总结了下:; n) r% R, w; P& @

    ' X7 u  C. e4 U6 e( ~" Y' T
    1.Matlab环境设置
    要建立独立运行的C应用程序,系统中需要安装MatlabMatlab编译器、C/C++编译器以及Matlab C/C++数学库函数和图形库函数。5 x9 }& B8 L" X5 \' X+ l
    Matlab编译器使用mbuild命令可以直接将C/C++源代码编译为独立运行程序,在这些源代码中可以使用Matlab提供的接口来调用Matlab数学库函数。
    7 K. D% ?& S! _9 f0 ?8 k1 g$ ]
    虽然生成的可执行程序可以脱离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
    5 n7 C; c* M6 F" M8 w0 q( Dlibmat.lib
    : c$ p' Y6 L. P% U/ ]4 Z. flibmex.lib5 o! q2 B( r" R; p0 w1 {& {
    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"

    ' S# B$ D. F( t  
    3 D/ v) h/ C2 ^2 U1 X9 m! X( p6 I) z1.设置编译器:
    - |* F1 T: O) {  H  m在确定安装好Matlab Compiler后,还需要对Compiler进行适当的配置,方法是在Matlab命令窗口输入:. G9 u# m$ g* V6 P3 F" }7 a
    Mbuild –setup, 按提示选择matlab自带编译器LCC。
    4 u. w& Y: s4 \- {7 O8 H5 v! c" T) |* B% d8 @1 }6 _
    2.将脚本编译为可执行文件:
    3 c/ m. W5 J5 A1 l; q如项目文件包含:gui.m, gui.gif, fun1.m。
    7 W% x" l+ _7 ?8 K7 \; X3 y2 G; ~* G: [8 G* D
    在此路径下命令行输入: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$ q) D, I5 V: ~
    4 M. K- \7 u0 v/ H$ Y/ n+ F0 c3.在未安装matlab的机器上运行可执行程序。
    " _# y) Q: F) w( e' ]将R22007b\toolbox\compiler\deploy\win32中的MCRinstaller.exe安装到该计算机上,将生成可执行程序脱离matlab运行所需的函数库。
    . n" M2 q3 M- m5 y将2中生成的gui.ctf,gui.exe拷贝到该计算机同一路径。运行gui.exe将生成gui_mcr文件夹,包含程序运行所需的库。至此完成。. o0 I$ Z7 ]& _

    8 T# F% G2 W( B% B4.去除独立可执行程序运行时的“DOS黑窗口”。
    " f$ |$ _. |4 L以上生成的exe程序运行时首先弹出一个DOS界面窗口,如果不需要其输出数据和错误信息,可将其去除。
    8 {4 M9 m0 Z' \' n# |4 I0 k# k7 H" ]- j0 u7 p- t+ }! I. ]
    matlba命令行输入:
    ( I+ D$ a; @% h+ |4 \
    2 P6 {% S8 r2 c( x& l/ @1 D7 i) c/ rcd(prefdir)
    ' b' q5 d9 m. k' \& {edit compopts.bat7 a! F" m  v! u- v- G, K; ?4 u* ^

    ! b$ N3 R5 J6 \# i此时compopts.bat打开,在文件最后添加:
    & R# |/ P2 b! t+ a& X+ Z  {) V, P7 F( d! [& I; A& }( k( X
    set LINKFLAGS=%LINKFLAGS% -subsystem windows
    * t8 v8 z/ L( A. k; D
    * p3 \: D& T4 I5 h1 ~$ l如果程序比较复杂,易出现异常,则不建议去除这个dos窗口以便调试。) B) F# }3 I5 Z3 v$ e

    ( u1 q+ d/ P! [/ z% b另外,这个办法是适用于你用的编译器为LCC,如果是其他的,那么所加语句有所不同! ^: E' O: Z9 f' g+ ?1 O
    & I  @/ i4 r- N/ q  K
    Microsoft Visual C/C++:
    $ l: J: S, ~# C. \
    - L1 C1 U+ l% uset LINKFLAGS=%LINKFLAGS% /SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup8 E! l# \6 _5 y  d

    - z4 H5 R6 v; h; _& wBorland:5 s, U; U. }; m$ f

    0 j+ H8 h2 Z8 |& H! M& }set LINKFLAGS=%LINKFLAGS% -aa
    & P8 A9 _) @2 Y+ S———————————————————————————————————————–
    4 V5 n% Z1 h- ~' c5 q& o7 @
    ) H. i( p. @& Q8 h9 B# D% H9 n方法一:
    # l! [- o6 q9 A已有gui.m文件和gui.fig文件
    4 @4 W" m' ?# x. ]1 在matlab的command窗口中输入
    ( @# K3 h3 f% `2 p, c( }, ?mcc -B sgl GUI.m6 l  b; k# Z$ {  Z
    2.将上步生成的文件包括*m 文件和*.fig文件一起考到待运行的机器1 N0 {  v3 `. m5 T

    ) `0 E. {& p. v0 \* q此时仍需matlab所必需的动态连接库。: I2 U4 ]" w7 ?2 l7 [8 ^/ f
    3. 将 /extern/lib/win32/mglinstallar.exel拷贝到到待运行机器上
    ' p- O3 ^7 E+ @: u4.在机器上先运行mglinstallar.exe, 然后选择解压目录,将在将在指定目录下解压缩出bin和toolbox两个子目录,  z" ]  O( c' w
    其中在bin\win32目录下就是数学库和图形库脱离MATLAB运行所需的所有动态连接库,共% M5 \# \4 B& m' Y' v7 y; S, U+ |
    有37个。可以将这些.dll考入system32, 也可以直接放在应用程序目录下。* W5 v2 {% A8 H( j. l5 v
    而toolbox目录则必须与应用程序同一目录。
    2 x0 d& D0 f- b. y8 H2 L2 g0 e; q  f% p5 @3 N/ H, b+ |' J
    方法二:
    1 C: q  H9 g9 I; Q9 T0 b
    7 u( ]& t2 x1 Jmatlab编程很方便,强大的矩阵运算功能,很多好用的工具箱,但是一般程序都要在matlab环境中运行,能否脱离这个环境打包发布呢,matlab 也提供了这样的工具。% t' _& e% J  H' S1 l# q
    0 j  [& _* y) a, i' l" M1 H
    1. 转化为c/c++程序并编译为.exe
    & m. T" V3 A0 o9 e3 B先验证mcc是否可用,用matlab中的example验证即可6 S: `% |  j( Z% b4 T! S
    建议不用matlab默认的lcc 编译器(可能有问题),可使用VC6编译器(按默认路径安装)
    / n- n4 E' y9 m由于带有界面,需要图像库支持,编译时应使用命令: mcc -B sglcpp pressure
    + X2 K* f5 k3 n- O( A编译生成若干c/c++源码,以及.exe文件、bin目录中figure菜单条/工具条文件(.fig)等
    % E' y8 F! |/ U0 `. Y程序发布需要.exe、bin\、.fig3 M9 Q0 `& \3 ?$ l0 k$ A

    6 d& L6 |$ t% d0 K. B# F9 \2. 在未装matlab的电脑上运行程序需要数学运行时库、图像运行时库以及用到的工具箱mex文件& M/ Z3 L3 y0 B. O% P+ e3 I5 @0 k# _
    前两者已经在\matlab\extern\lib\win32mglinstaller.exe压缩包中,将其解压,并在环境变量path中添加解压到的路径1 v" e/ v2 H7 L7 A% ]; r
    另外若程序中还用到其他工具箱的东西,那么需要将此工具箱中需要的mex文件也一并放在解压到的路径,子文件夹位置与matlab中的位置相同7 a$ N% G4 I- {
    % X7 M& {+ W8 t+ U# Z- r
    3. 在确保.exe程序可以运行的情况下 可以用setup factory打包发布
    # A! b3 h$ |4 @+ K* k' @+ Q) ?以下通过注册表自动添加path路径
    7 n- r+ ~* b8 b- H% q6 {2 ?%————————————————————————————–
    + ^& W# f6 ]2 E+ X7 b# k) C! sScreen.Next(); — 进入下一个屏幕
    $ T5 ~) |. G) _  w7 z0 X3 x8 kresultDialog = Dialog.Message(“注意”, “向环境变量中加入matlab数学库及图象库的安装路径?”, MB_YESNO, MB_ICONINFORMATION, MB_DEFBUTTON1);
    + [- `3 v" r8 D4 Mif (resultDialog == IDYES) then –加入安装路径
    ! C) v1 [# v# a: K3 _* w9 d& }8 kstrPath = Registry.GetValue(HKEY_CURRENT_USER, “Environment”, “path”, true);
    ; s# b$ P* ^0 p# R! }9 J; E if strPath ~= “” then  p1 O  l3 l( \! E
    strPath = String.Concat(strPath, “;”);
    # ]2 ]& l$ D: F" m/ k. r. Hend$ m; K" z2 W9 K+ s
    strPathToAdd = SessionVar.Expand(“%AppFolder%”);2 A/ B0 d3 n8 V9 M+ k) `$ q" h
    strPathToAdd = String.Concat(strPathToAdd,”file://MATLAB6p5//bin//win32″);9 a: Q& a; a! P' h( y1 N
    — 如果路径中无该位置,则加入
    3 n2 @' ~* p& Z- uif String.Find(strPath,strPathToAdd) == -1 then4 y5 U  \/ @8 I/ W- P, M
    strPath = String.Concat(strPath, strPathToAdd);
    9 x5 D; k& `/ i( a Registry.SetValue(HKEY_CURRENT_USER, “Environment”, “path”, strPath, REG_SZ);
    6 N1 w; R! P* v end
    / Y: z3 [2 r! @5 x5 Fend
      ~$ B: \( `; S! |( Z4 L%————————————————————————————–! i+ x9 g! g! a. l
    方法三:+ \% N# h) _; b6 _6 w4 ]
    在网上搜了一个方法,还没有用过, 贴在这里仅供参考:
    - k' x) N- P7 ]8 N& r& Q一、 完全可以,而且生成的.exe文件可以在没有安装matlab的机器上使用,方法吗---* r9 s$ j1 R; b& l* }. ]
    首先,使用mcc编译得到.exe文件,具体参数见帮助文件;
    : p4 Q: o+ S9 i* p其次,将.exe文件及相关资源文件以及一个称为mglinstaller.exe的软件包一起拷到别的机器上,运行mglinstaller.exe,并添加环境变量path,即可执行.exe文件
    " R9 y- O" T$ Y1 o& d+ r第三,在MATLAB环境,执行命令& |7 ~) X8 n0 z4 B5 }8 i
    mcc -m -B sgl file.m
    ; Z* b( ^2 V% t" n( l4 h1 b; I或者 mcc -p -B sglcpp file.m. A; L9 }7 _% _2 B/ W. `* a& c* ?/ q! B
    请键入help mcc看帮助。
    9 b8 P* P5 C: w6 O* n6 R$ k  imcc是在“command windows” 用的吗?
    ( U% x# w" o2 H" m" u只要“mglinstaller.exe”,与.exe文件及相关资源文件就可以了吗.
    - `) M( S2 X. S3 g, Z1 f5 z还有“添加环境变量path”是path到.exe文件的环境中是吧?
    . s! u0 Z- w6 a+ q4 N* g* Y, m7 e9 g: A7 S4 J9 C- o( q7 t* v
    二、 在matlab下的workspace里打comtool,点file-open project将我们先前建好的 comtest.cbl工程文件打开,再点component–package component就实现了打包,此时到 comtest\distrib文件夹里看,生成的comtest.exe就是打包后的解压程序,双击它会解压出一些文件,再点击解压出来的 _install.bat就可以实现安装" R. B) a8 e* K' A1 u2 @" {% T
    三、 如何将gui生成exe ?
    ) y; F. @/ X# N( J1 A6 c4 V已有gui.m文件和gui.fig文件
    5 Q8 Q* p: \5 ~" H5 D, A5 n4 }( M1 在matlab的command窗口中输入
    & j' @9 H, d3 f3 Z5 Kmcc -B sgl GUI.m
    . M5 I1 O! i+ s9 _5 @2.将上步生成的文件包括*m 文件和*.fig文件一起考到待运行的机器* ^# _+ q: U& Z6 C* O
    此时仍需matlab所必需的动态连接库。
    3 e$ d. ]6 t# m! |, t3. 将 /extern/lib/win32 /mglinstallar.exel拷贝到到待运行机器上6 i) E. {+ \* `2 q8 i
    4.在机器上先运行mglinstallar.exe, 然后选择解压目录,将在指定目录下解压缩出bin和toolbox两子目录,其中在 bin\win32目录下就是数学库和图形库脱离MATLAB运行所需的所有动态连接库,共有37个。可以将这些.dll考入system32, 也可以直接放在应用程序目录下。而toolbox目录则必须与应用程序同一目录。% r0 q( N6 c4 S0 H
    5.大功告成。 ' ]2 o9 z) S3 j# M: P6 Z; l6 Y

    $ u$ Q$ `  t# d% U( \外一篇:MATLAB M文件变exe文件$ F/ a( C6 J( u. E
    我也是最近才搞定的这个问题,按下述步骤进行,就没有问题,我已经运行成功,但是遇到你程序的bug的话,便会出现错误,关闭整个程序: |8 g8 {/ h8 M& f% P' m6 _# I/ `% {
    希望这些对你有用* |6 A+ c2 D# N" g5 w
    % o3 F) ~6 t, Y" q
    如何将MATLAB程序编译成独立可执行的程序?如何将编译好的独立可执行程序发布在没有安装MATLAB的电脑上?下面将一步步实现:
    : ?* t% ?! u7 w3 D! h
    : ~7 X4 ]/ T$ s& Z6 w一、生成独立可执行的程序(exe文件)步骤$ h8 s4 |8 u, B* Q1 V
    ! n. |' e# ^6 l3 P5 F
    1、安装编译器。可有多种选择,matlab自带了一个LCC,推荐使用VC++6.0,我基于VS 2003实现。6 d5 R) ^  [& a5 R- e2 |/ a
    2、设置编译器。在matlab命令行输入mbuild –setup以及mex –setup,选择安装的c编译器。
    " H1 t, J; O& |1 D3、调用编译器。此处使用MATLAB下的一个GUI平台deploytool下完全实现。在命令窗口输入deploytool即可看到。具体使用方法请Help。
    " V# v8 N5 g" w当然,也可以输入mcc -m filaname, filaname为要转成exe的m文件;" B0 p2 Z$ d, D7 _
    注:在以前的版本中,用编译命令mcc -B sglcpp filaname;自2006的版本后,替换为mcc -mfilaname;
    / y# M. V+ `/ r2 H4、安装\toolbox\compiler\deploy\win32目录下的MCRInstaller。
      L7 V4 |: w% m* z) X9 k4 l, V# C& C6 ?
    二、脱离matlab运行可执行程序
    ' s: l. Y4 W% K( [MCR是由matlab的运行环境,占用不到300M的对于用不同matlab版本生成的exe文件,MCR版本也会有不同,因此,在程序打包时,最好将相应版本的MCR一起打包。MCR环境的设置文件存放目录如下:
    $ e+ _: r+ z& K+ v6 V# v& u \toolbox\compiler\deploy\win32
    / ~. V; Z! U. d* e) H! j( `% J. P# U文件名为MCRInstaller.exe。可将其拷贝到自己的文件夹中,(7.0以前的版本是mglinstaller.exe)。
    ! @: q% K% g3 N$ N在MATLAB里运行可执行程序的办法是在前面加一个!,比如:!picshow,后缀名可有可无。' n& m+ W1 H# Y. A+ j3 G" T
    在其它没有安装matlab的机器上运行exe文件前:
    ( S# n. R8 m( t  o4 K首先安装matlab的运行环境。在同一机器上可以并存不同版本的matlab环境(换句话说不同版本不兼容)。4 S& J, I0 B5 |2 K( I$ p
    其次是要将“MCRinstaller.exe安装目录\runtime\win32”这个路径添加到该计算机的环境变量中,通常是自动加载。2 [" f. c4 p, d2 z  [' ]8 o) g
    如果没有,也可手动安装,添加的方法是:
    1 g- v" b% M7 u" _6 t# E( Q右击“我的电脑”“属性”“高级”“环境变量”“添加”指定一个变量名,然后将上述路径复制到里面就可以了。
    1 x- o; h4 J4 g9 f4 {注:在安装过程中会弹出让安装Microsoft.NETFramework可以不用安装。- Y9 x* D1 W8 \9 u7 m
    最后就是将编译生成的相相关文件拷贝到同一目录下,双击即可运行。& `+ m& Q. \& }6 P& E6 k
    问题:目前此方法可完全运行在没有安装MATLAB以及C/C++的电脑上,但是如果是在AMD的CPU可以运行,但是不会出现任何MATLAB编译的界面。" A8 d* l+ V9 `4 R/ @
    美中不足就是,运行的时候dos的那个黑色地窗口一直存在。下面将实现去除黑屏的办法:
    1 q  d8 W3 e( `1 v1 d; q! G. y1 d) |4 u1 e/ f% d0 ~3 z% X! t
    消除运行MATLAB生成的exe程序的dos黑屏的办法
    - q+ B7 o: ?% C/ B- x基于MATLAB生成exe文件后,每次运行都存在dos黑屏的问题,现在可以通过以下方法解决:3 s) p+ d2 c. W! o9 e% d& c/ a
    方法一: 在命令窗口输入:
    % j, N4 X6 V8 F1 `2 ~7 Tcd(prefdir)
    . Q: n7 l1 B% Kedit compopts.bat: S7 {9 P& ^, z
    在打开的文件最后添加以下语句:5 q' S+ Z# F7 k4 c; n( v, J
    $ ~. A% s* B1 S0 q. A% C
    A.VC环境下:- w* r! P- x1 J& }6 e( L+ i, U# K

    * Z2 O$ c4 H, c: bset LINKFLAGS=%LINKFLAGS%/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup
    ! _# [6 J" F* p" p: v
    5 ]5 D! f% a5 e2 O$ N/ LB.LCC环境下:
    * _  j' m' q/ I) hset LINKFLAGS=%LINKFLAGS% -subsystemwindows
    + d0 B/ P; A  }2 k: v1 @  c
    6 b; I2 ]/ A! U) BC. Borland:
    / R2 }" N! O/ r$ z: }, k1 n set LINKFLAGS=%LINKFLAGS% -aa
    ) Q* J0 N  V# g# y5 Q/ h0 g( F% A$ a$ s
    保存以后,再重新编译m文件,生成的exe文件运行起来就没有dos窗口了1 {- R+ z3 e( \: R
    4 N4 f1 i, ?3 ?# _) m
    方法二:使用suppress工具:1 R* h/ C* g- v! ^
    下载附件中的suppress压缩包后解压,(当然您可以自己去Google然后再下载)会看到一个suppress.ini文件,用记事本打开,然后将 其中“Name=test.exe”中text.exe的改为你生成的exe文件名。将suppress.exe(有个关盘和显示器的图标),改后的 suppress.ini放到你生成的exe的同目录下。执行suppress.exe或者您自己生成的exe可以了。当然您可以自己修改 suppress.exe的名字,改为您自己想要的名字。
    8 b5 c5 v; A: h  p- j% V5 a3 N4 R5 |3 M
    其中的方法一在使用后生成的exe再到没有任何安装MATLAB的机子上运行也不会有黑屏了。- j1 N0 S% A/ O/ U  Y: ^( f
    方法二的缺点就是要同时存在您生成的exe以及supress.exe,必须在同一目录下。
    ! b+ {9 n  Q6 V3 B4 b# L
    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-6-14 17:15 , Processed in 0.470150 second(s), 72 queries .

    回顶部