24小时热门版块排行榜    

CyRhmU.jpeg
查看: 674  |  回复: 8
【奖励】 本帖被评价2次,作者woshilsh增加金币 2
当前主题已经存档。

woshilsh

荣誉版主 (职业作家)


[资源] 【分享】Matlab代码的保密

无聊之极,然后琢磨了下这东西,网上很多地方也有,嘿嘿,贴这里记录下,以后说不定用。尤其投稿的时候,给人家代码得小心点。怎样保密呢?


两种方法:一、生成p文件;二、生成.exe文件,拿刚做好的程序试验了一下,已经验证成功,记录一下过程:

    生成p文件的方法很简单,在command wondow里面用 mcc -B pcode file.m命令转化为pcode文件,据说是不会被反编译的。他的缺点是不能够脱离Matlab单独运行,必须还在command window里面调用,可移植性不强。如果生成.exe文件就可以解决这个问题。

    生成.exe文件的方法稍微复杂点:

1、首先要保证你的程序是函数型的,而不是脚本形式的。如果是脚本形式的也不要紧,只需要在脚本文件第一行添加 function []=name()即可。

2、然后,在command window里用mcc -m -B    sgl file.m命令生成.exe文件,期间会让你选择编译器(我的是VC6.0),会发现生成了一堆文件。

3、将上步生成的那一堆文件一起拷到待运行的机器。此时仍需matlab所必需的动态连接库。将 /extern/lib/win32/mglinstallar.exe拷贝到到待运行机器上。
4.在待运行的机器上先运行mglinstallar.exe, 然后选择解压目录,将在将在指定目录下解压缩出bin和toolbox两个子目录,其中在bin\win32目录下就是数学库和图形库脱离MATLAB运行所需的所有动态连接库,共有n个。可以将这些.dll考入system32, 也可以直接放在应用程序目录下(我把它拷在应用程序目录下了)。而toolbox目录则必须与应用程序同一目录。
5.大功告成,双击.exe即可运行了。

评:P文件最后很小,但是EXE文件可大了!郁闷!还是P文件好!
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
支持一下,哈哈
2楼2009-06-10 21:36:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
支持一下,哈哈
3楼2009-06-10 21:36:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

magic7004

金虫 (职业作家)



小木虫(金币+0.5):给个红包,谢谢回帖交流
不清楚搂住用的哪个版本的matlab。
我的做成exe貌似也没有很大。

[ Last edited by magic7004 on 2009-6-11 at 11:51 ]
4楼2009-06-11 11:50:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

woshilsh

荣誉版主 (职业作家)


最新版本,R2009a,你呢?
5楼2009-06-11 12:20:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

秦林

铜虫 (初入文坛)


支持一下
6楼2009-07-19 15:50:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

smy1982

木虫 (正式写手)


★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
wangen994(金币+2,VIP+0):感谢参与讨论 8-14 18:39
将gui生成exe ?

已有gui.m文件和gui.fig文件
1 在matlab的command窗口中输入
     mcc -B sgl GUI.m
2.将上步生成的文件包括*m 文件和*.fig文件一起考到待运行的机器
    此时仍需matlab所必需的动态连接库。
3. 将 /extern/lib/win32/mglinstallar.exel拷贝到到待运行机器上
4.在机器上先运行mglinstallar.exe, 然后选择解压目录,将在将在指定目录下解压缩出bin和toolbox两个子目录,其中在bin\win32目录下就是数学库和图形库脱离MATLAB运行所需的所有动态连接库,共有37个。可以将这些.dll考入system32, 也可以直接放在应用程序目录下。
而toolbox目录则必须与应用程序同一目录。
5.大功告成。
7楼2009-08-13 19:22:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

rjjy

木虫 (著名写手)


★★★★★ 五星级,优秀推荐

支持一下
8楼2009-08-13 20:47:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sunxiao

荣誉版主 (著名写手)


★★★★★ 五星级,优秀推荐


wangen994(金币+1,VIP+0):感谢参与讨论 8-14 18:39
如果要使exe文件在没有安装matlab的机子上运行,那么编译出来的exe文件是相当大的,估计有300多兆吧
9楼2009-08-13 23:22:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 woshilsh 的主题更新
☆ 无星级 ★ 一星级 ★★★ 三星级 ★★★★★ 五星级
普通表情 高级回复(可上传附件)
信息提示
请填处理意见