QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 13712|回复: 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等的文章很少大都是那几个 ,我自己在网上找了些东西总结了下:0 t1 d: F0 Q4 A# W

    1 ], X% c( y; R3 u
    1.Matlab环境设置
    要建立独立运行的C应用程序,系统中需要安装MatlabMatlab编译器、C/C++编译器以及Matlab C/C++数学库函数和图形库函数。1 A5 N1 l$ i- t# G; ~
    Matlab编译器使用mbuild命令可以直接将C/C++源代码编译为独立运行程序,在这些源代码中可以使用Matlab提供的接口来调用Matlab数学库函数。
    - k. F/ h3 G* V
    虽然生成的可执行程序可以脱离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.lib1 Q4 N% ]6 T$ g: V. i9 w6 w
    libmat.lib
    , L& V2 o, J) }7 T2 _+ a2 \libmex.lib1 H; |/ {" e% X! `0 G! p2 `
    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"

    + Y& E0 a  R1 n$ ]) _  
    6 e% G% v2 w9 T+ s) P9 E1.设置编译器:8 Z7 I% ]3 h4 Q2 n1 o& i9 m
    在确定安装好Matlab Compiler后,还需要对Compiler进行适当的配置,方法是在Matlab命令窗口输入:! o( ]% N2 @& z/ ^) c; h& ^- a
    Mbuild –setup, 按提示选择matlab自带编译器LCC。
    ) m$ U* l8 L/ w" O
    & t, K& d2 _2 z' f8 c  N5 q2 ~' Z2.将脚本编译为可执行文件:. k6 A+ D/ g+ s2 P" `' ]7 w
    如项目文件包含:gui.m, gui.gif, fun1.m。
    ; v6 j# ]; p' x& `+ j8 `7 Y' j! n( G  G, E( X, H6 P
    在此路径下命令行输入: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环境运行必需的文件。
    4 U2 ^& B/ t0 g) V/ z
    # {' |- \/ P$ h4 N* v3.在未安装matlab的机器上运行可执行程序。5 X0 S4 k$ [  a5 @6 v* `
    将R22007b\toolbox\compiler\deploy\win32中的MCRinstaller.exe安装到该计算机上,将生成可执行程序脱离matlab运行所需的函数库。( b+ R7 ~: r1 u, G- o; s
    将2中生成的gui.ctf,gui.exe拷贝到该计算机同一路径。运行gui.exe将生成gui_mcr文件夹,包含程序运行所需的库。至此完成。+ Q: y# R; u4 _+ x; }' A, a

    2 x. G& u3 ?# B4 @4.去除独立可执行程序运行时的“DOS黑窗口”。- I& K: b# z4 O# A; Q- u
    以上生成的exe程序运行时首先弹出一个DOS界面窗口,如果不需要其输出数据和错误信息,可将其去除。& f- F5 w0 W: B: g( z( I) }; ^- b

    2 K0 D" r, d$ z1 p5 }) \matlba命令行输入:
      j& M& l- B( n9 |  N* F& m3 Q3 l% ^+ t2 _/ v6 H8 V
    cd(prefdir)
    0 k  W- K. K  ], X/ n9 Q% ledit compopts.bat. |4 x+ K, \) S, Y) A$ j: p2 N$ W

    : F5 S7 B8 f) F, N7 c$ D9 z$ p" e此时compopts.bat打开,在文件最后添加:
    7 m" c6 C8 c9 |- M) u% j
    7 p7 n; I" {* d, \: V+ Sset LINKFLAGS=%LINKFLAGS% -subsystem windows* ~% R) q4 b, O
    % `/ ]% |( b/ e) y3 L
    如果程序比较复杂,易出现异常,则不建议去除这个dos窗口以便调试。
      N: Y2 ?' @8 \3 Y! r5 Y, W/ b7 U
      j! Z9 D4 L* o# A5 i+ m另外,这个办法是适用于你用的编译器为LCC,如果是其他的,那么所加语句有所不同
    - }8 n' p7 \8 e% `& S: A! b! d: M3 g* T* z' J& }" [
    Microsoft Visual C/C++:
    3 c" C6 w0 I. i$ X/ {- R# X* |- B8 Z8 p- j8 c1 ]: t
    set LINKFLAGS=%LINKFLAGS% /SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup3 F, T: S% `7 X, T3 P

    $ o8 d/ d: f. TBorland:
    - g7 S/ R/ n3 Q( K4 }( }* G! c- C( X) a, x) D
    set LINKFLAGS=%LINKFLAGS% -aa
    # c" G3 [; O* v3 A/ [' o/ ?———————————————————————————————————————–
    4 b! C3 E' y0 ], S/ T7 y. F( @" ^
    , x7 }' S' X/ o& [方法一:
    0 q9 Q( T. v5 F; S已有gui.m文件和gui.fig文件
    , s+ t: o( M/ G3 d- A1 在matlab的command窗口中输入
    ' }9 h: `! n& |( F" ~( {mcc -B sgl GUI.m
    8 g: s6 v& `( T2.将上步生成的文件包括*m 文件和*.fig文件一起考到待运行的机器( ~# x( P3 W0 D1 p, w; `
      p. z, A: U' }: L; P
    此时仍需matlab所必需的动态连接库。* `) g+ m6 B1 F+ X; h* P* N6 i
    3. 将 /extern/lib/win32/mglinstallar.exel拷贝到到待运行机器上, m& F( K* B4 _& C4 O, K' A% u# z
    4.在机器上先运行mglinstallar.exe, 然后选择解压目录,将在将在指定目录下解压缩出bin和toolbox两个子目录,
    ! V# U0 @$ y% G- g+ f8 M1 f其中在bin\win32目录下就是数学库和图形库脱离MATLAB运行所需的所有动态连接库,共
    4 r# A, @. X6 t6 y- ]! K  I有37个。可以将这些.dll考入system32, 也可以直接放在应用程序目录下。6 I' o( f, \4 b3 _, y2 `" s8 Z
    而toolbox目录则必须与应用程序同一目录。  J% l/ Y$ t$ F# @

      l8 Q) b$ M% K/ j8 f# _4 R方法二:$ i3 U; y! D) q' P

    & p* t0 k6 c4 ]! G: F( i( e0 Jmatlab编程很方便,强大的矩阵运算功能,很多好用的工具箱,但是一般程序都要在matlab环境中运行,能否脱离这个环境打包发布呢,matlab 也提供了这样的工具。" ^# k! y3 _( ~

    1 |9 r- Z* U( ]2 V" c# B1. 转化为c/c++程序并编译为.exe
    # Z1 y( g. M& k/ ?! {6 T: Y先验证mcc是否可用,用matlab中的example验证即可
    1 R* I- J+ z, Y5 \$ M2 g$ P9 c建议不用matlab默认的lcc 编译器(可能有问题),可使用VC6编译器(按默认路径安装)
    6 Y7 P! w: `) u3 K4 }* W9 r6 |由于带有界面,需要图像库支持,编译时应使用命令: mcc -B sglcpp pressure
    ; T/ Q1 B! \3 q; Y- |7 s! U/ i编译生成若干c/c++源码,以及.exe文件、bin目录中figure菜单条/工具条文件(.fig)等
    4 I# l" G" z' _$ a0 q! H9 K程序发布需要.exe、bin\、.fig
    6 u4 S# E. d5 d# H$ L* n  w" \" b4 H! w
    2. 在未装matlab的电脑上运行程序需要数学运行时库、图像运行时库以及用到的工具箱mex文件
    5 l/ L* z) k9 a4 _! J* p* w前两者已经在\matlab\extern\lib\win32mglinstaller.exe压缩包中,将其解压,并在环境变量path中添加解压到的路径
    ( t3 H8 O* C) j- p; _4 `) F另外若程序中还用到其他工具箱的东西,那么需要将此工具箱中需要的mex文件也一并放在解压到的路径,子文件夹位置与matlab中的位置相同6 p! M% K9 Q& N2 ?
    / g$ Z+ t, v( N$ x- b$ F6 |& i; ^6 L
    3. 在确保.exe程序可以运行的情况下 可以用setup factory打包发布/ K% O5 N: c( S
    以下通过注册表自动添加path路径8 w: z% y0 I  n, u* C4 v
    %————————————————————————————–8 N  o1 R: h* w' u  ]' e2 \& P. O
    Screen.Next(); — 进入下一个屏幕7 t2 ]* h$ n! [# T
    resultDialog = Dialog.Message(“注意”, “向环境变量中加入matlab数学库及图象库的安装路径?”, MB_YESNO, MB_ICONINFORMATION, MB_DEFBUTTON1);0 \" b/ i$ i' W( r6 e
    if (resultDialog == IDYES) then –加入安装路径
    8 M# Q8 c4 ~7 v! a. L; I! T% l; cstrPath = Registry.GetValue(HKEY_CURRENT_USER, “Environment”, “path”, true);
    ' h4 k( n; c% Z) _# Z if strPath ~= “” then
    ( y0 Z, p, D0 \ strPath = String.Concat(strPath, “;”);
    . ~3 S' G4 N9 T- \end
      \1 t. h5 h" W0 p2 s& V strPathToAdd = SessionVar.Expand(“%AppFolder%”);
    & F1 U1 t1 e, b% u# mstrPathToAdd = String.Concat(strPathToAdd,”file://MATLAB6p5//bin//win32″);9 ?2 o: _( R) b' s
    — 如果路径中无该位置,则加入+ ]+ s1 e/ w9 T! j5 I) t
    if String.Find(strPath,strPathToAdd) == -1 then4 h2 B* A3 C5 [  Q6 G6 `5 c
    strPath = String.Concat(strPath, strPathToAdd);$ v/ x4 T: Z9 W5 e
    Registry.SetValue(HKEY_CURRENT_USER, “Environment”, “path”, strPath, REG_SZ);. S, I" a3 D' y/ W: L) c
    end: x1 K! I! z$ ^8 w: K
    end
    ; ], }7 I; g, e9 _; n( r%————————————————————————————–3 d& G8 Q* i1 r. \  v
    方法三:6 Y1 N) |0 ~  R! @- k
    在网上搜了一个方法,还没有用过, 贴在这里仅供参考:
    $ |* X1 v1 [" n2 @( F6 |$ E一、 完全可以,而且生成的.exe文件可以在没有安装matlab的机器上使用,方法吗---
    ; S( G+ |8 L5 I7 O8 ~) ^首先,使用mcc编译得到.exe文件,具体参数见帮助文件;/ I0 X- ^6 s' f
    其次,将.exe文件及相关资源文件以及一个称为mglinstaller.exe的软件包一起拷到别的机器上,运行mglinstaller.exe,并添加环境变量path,即可执行.exe文件
    0 M* x; l0 L; `& n) X' [" U  Z第三,在MATLAB环境,执行命令
    8 `5 H6 r4 v* A' J& `: d2 k8 Ymcc -m -B sgl file.m: m/ F9 L! M9 d1 b1 t5 C5 a; a
    或者 mcc -p -B sglcpp file.m7 t: d4 V) ?: d' ^6 n8 f# S
    请键入help mcc看帮助。  q1 j4 M* n4 k( ^: S: m% s
    mcc是在“command windows” 用的吗?
    ' K1 F3 K2 A" Z  K只要“mglinstaller.exe”,与.exe文件及相关资源文件就可以了吗.
    ) m" ~3 Z' R3 B" d1 r还有“添加环境变量path”是path到.exe文件的环境中是吧?
    # n" z: e3 j4 n. N+ |
    ) N5 e( d$ r+ ~( |$ R$ q& Y. O9 |3 |4 F二、 在matlab下的workspace里打comtool,点file-open project将我们先前建好的 comtest.cbl工程文件打开,再点component–package component就实现了打包,此时到 comtest\distrib文件夹里看,生成的comtest.exe就是打包后的解压程序,双击它会解压出一些文件,再点击解压出来的 _install.bat就可以实现安装
    8 T, i0 P9 n6 |9 J% Q三、 如何将gui生成exe ?& a0 E! b0 i5 j) k' `) s. U- x
    已有gui.m文件和gui.fig文件) g& i9 c# v+ I
    1 在matlab的command窗口中输入
    1 O, y0 `! T6 ~( E2 P+ y" |$ Q' Wmcc -B sgl GUI.m
    + z1 j5 b0 y! o& f& ^2.将上步生成的文件包括*m 文件和*.fig文件一起考到待运行的机器( q$ z: i" m) |% g, x, }
    此时仍需matlab所必需的动态连接库。
    7 m5 U; g6 F, C* a1 g3. 将 /extern/lib/win32 /mglinstallar.exel拷贝到到待运行机器上' V4 P# A! ~0 r9 V1 O+ v9 b
    4.在机器上先运行mglinstallar.exe, 然后选择解压目录,将在指定目录下解压缩出bin和toolbox两子目录,其中在 bin\win32目录下就是数学库和图形库脱离MATLAB运行所需的所有动态连接库,共有37个。可以将这些.dll考入system32, 也可以直接放在应用程序目录下。而toolbox目录则必须与应用程序同一目录。
    ; N6 i! \- P+ B$ c) m0 r' v5.大功告成。 . [# U/ W' ]7 G

    6 h5 H) {( W: d外一篇:MATLAB M文件变exe文件" D' P2 P5 P, o( L0 g2 m
    我也是最近才搞定的这个问题,按下述步骤进行,就没有问题,我已经运行成功,但是遇到你程序的bug的话,便会出现错误,关闭整个程序. j$ T, O+ V$ {
    希望这些对你有用
    ' F  a, P& T0 L6 a% v0 m& b9 ~" G1 Y' d, r
    如何将MATLAB程序编译成独立可执行的程序?如何将编译好的独立可执行程序发布在没有安装MATLAB的电脑上?下面将一步步实现:
    7 [5 Q0 }# C9 w5 I& U7 {  s9 F& e) }6 v; m" ^
    一、生成独立可执行的程序(exe文件)步骤3 J6 ~2 b& Q! Y) f7 E7 O4 _  a1 z
    * V. d/ Y, {  C
    1、安装编译器。可有多种选择,matlab自带了一个LCC,推荐使用VC++6.0,我基于VS 2003实现。0 _* v, ~# q9 O3 B4 G1 q  p
    2、设置编译器。在matlab命令行输入mbuild –setup以及mex –setup,选择安装的c编译器。# G' b- Z* S9 G7 l& o5 R* F
    3、调用编译器。此处使用MATLAB下的一个GUI平台deploytool下完全实现。在命令窗口输入deploytool即可看到。具体使用方法请Help。) D5 c. [' R6 p/ H- _, K
    当然,也可以输入mcc -m filaname, filaname为要转成exe的m文件;8 n% n8 b# T4 b$ z
    注:在以前的版本中,用编译命令mcc -B sglcpp filaname;自2006的版本后,替换为mcc -mfilaname;8 |* w; H+ I( [7 @
    4、安装\toolbox\compiler\deploy\win32目录下的MCRInstaller。
    " }/ M- ?& L, e; b8 x) o) J0 G/ G" |( B
    二、脱离matlab运行可执行程序
    / I2 d$ S/ U+ G! }MCR是由matlab的运行环境,占用不到300M的对于用不同matlab版本生成的exe文件,MCR版本也会有不同,因此,在程序打包时,最好将相应版本的MCR一起打包。MCR环境的设置文件存放目录如下:1 V' D5 f2 q: z: C  C/ a* @+ f' y
    \toolbox\compiler\deploy\win32# M3 ~4 w: Q( h4 X
    文件名为MCRInstaller.exe。可将其拷贝到自己的文件夹中,(7.0以前的版本是mglinstaller.exe)。  n4 G2 E8 i( d% a# C
    在MATLAB里运行可执行程序的办法是在前面加一个!,比如:!picshow,后缀名可有可无。
    9 }1 P2 |$ R  |& l+ a6 V在其它没有安装matlab的机器上运行exe文件前:" d; Z; P$ v9 m' d& H
    首先安装matlab的运行环境。在同一机器上可以并存不同版本的matlab环境(换句话说不同版本不兼容)。
    # f6 l$ K% r$ `- R( e其次是要将“MCRinstaller.exe安装目录\runtime\win32”这个路径添加到该计算机的环境变量中,通常是自动加载。
    / P  G& _4 }) e. O如果没有,也可手动安装,添加的方法是:; i' ?* [% ?* s; g) l
    右击“我的电脑”“属性”“高级”“环境变量”“添加”指定一个变量名,然后将上述路径复制到里面就可以了。
    * f* F% t. w' _2 u2 R注:在安装过程中会弹出让安装Microsoft.NETFramework可以不用安装。0 g# U" r$ O3 w+ x+ R" G$ l0 G+ w
    最后就是将编译生成的相相关文件拷贝到同一目录下,双击即可运行。" U7 N2 I6 l$ h4 D* ]( ^
    问题:目前此方法可完全运行在没有安装MATLAB以及C/C++的电脑上,但是如果是在AMD的CPU可以运行,但是不会出现任何MATLAB编译的界面。
    ; v  U, k& f* [2 ?美中不足就是,运行的时候dos的那个黑色地窗口一直存在。下面将实现去除黑屏的办法:
    ' b( K& p$ v2 }
    : I8 U/ ]2 x2 e. S  P消除运行MATLAB生成的exe程序的dos黑屏的办法4 W" b7 l) ?8 [, j
    基于MATLAB生成exe文件后,每次运行都存在dos黑屏的问题,现在可以通过以下方法解决:2 f+ Y5 s2 B* X
    方法一: 在命令窗口输入:
    5 [: y/ p1 @/ r  d3 `cd(prefdir)
    4 A  {: v3 K  l) N' S5 A6 R. h( tedit compopts.bat% a/ N0 F* v) Q0 y
    在打开的文件最后添加以下语句:
    : g0 F- \9 G. i; D
    % o6 _; @, Z- Z" oA.VC环境下:
    1 n! j3 w8 D5 ]& }1 U: V  P( P# Y; v" A7 H
    set LINKFLAGS=%LINKFLAGS%/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup
    " v! A  i& L1 W  x& f; P: K) G% `! o
    B.LCC环境下:
    / j, d' d+ V% l: _6 P7 [/ o/ z8 |+ hset LINKFLAGS=%LINKFLAGS% -subsystemwindows " U: c' {* ^  e+ w0 M

    " N0 g3 V$ U* A( T  \C. Borland:  v5 n' w4 t/ w: z. j
    set LINKFLAGS=%LINKFLAGS% -aa: Q( h& N& G8 l7 I
    1 g2 i" r1 M; ?' ^+ b4 e
    保存以后,再重新编译m文件,生成的exe文件运行起来就没有dos窗口了
    0 ?+ L( S  T, X* P, F6 v! m$ v* L1 T
    方法二:使用suppress工具:% ~3 m1 H/ [* s6 {7 R/ H2 O$ j% T
    下载附件中的suppress压缩包后解压,(当然您可以自己去Google然后再下载)会看到一个suppress.ini文件,用记事本打开,然后将 其中“Name=test.exe”中text.exe的改为你生成的exe文件名。将suppress.exe(有个关盘和显示器的图标),改后的 suppress.ini放到你生成的exe的同目录下。执行suppress.exe或者您自己生成的exe可以了。当然您可以自己修改 suppress.exe的名字,改为您自己想要的名字。
    0 m/ M; U$ }# ~+ p5 \9 _3 B/ A7 N/ k# w' {/ U  s; v( _5 B& v9 h5 e2 D& I
    其中的方法一在使用后生成的exe再到没有任何安装MATLAB的机子上运行也不会有黑屏了。& `7 g$ |* z  w- b1 B9 s" F$ j
    方法二的缺点就是要同时存在您生成的exe以及supress.exe,必须在同一目录下。
      m' t' c% H/ c) @& D
    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-25 00:20 , Processed in 0.708286 second(s), 71 queries .

    回顶部