MATLAB Compilerで作​成したアプリケーショ​ンのアイコンを変更で​きますか?

11 views (last 30 days)
MathWorks Support Team
MathWorks Support Team on 24 Oct 2012
MATLAB Compilerで作成したアプリケーション(.exe) で、エクスプローラ上などで表示したときのアイコンを変更する方法を教えてください。

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 23 Jan 2020
Edited: MathWorks Support Team on 22 Jan 2020
MATLAB Compiler のバージョンで作成方法が異なります。
■R2013b 以降の場合
deploytool によるGUI画面にて、変更可能となっております。
1. 以下を実行し、[アプリケーションコンパイラ] を選択し、MATLAB CompilerのGUI画面を表示します。
>> deploytool
2. [アプリケーション情報] 部分の左上部分にアイコンが表示されています。ここをクリックすることにより変更します。
3. [パッケージ化] ボタンによりコンパイルを行います。
■R2010b から R2013a までの場合
MATLAB 7.11 (R2010b) からは EXE の代わりに DLL を ご利用ください。MATLAB Compiler でDLL を生成し、C のラッパー関数で DLL を呼び出す EXE を作成します。手順は以下の通りです。
1. MATLAB上でDLL を生成
>> mcc -B csharedlib:libfigure figuretest.m
2. Visual Studio のIDE において Win32 Console Applicationを作成 (ex. test)
3. "リソースファイル" 上で右クリック→"新しい項目の追加"
4. リソースファイル.rc を選択し、適宜名前を変更
5. 再度 "リソースファイル" 上で右クリック→"リソースの追加"でアイコンファイルを追加
6. ソリューションエクスプローラで、プロジェクト(ここでは[test])を選択
[プロジェクト] -> [プロパティ] を選択し、[構成プロパティ]の下にある[リンカ]フォルダを開き、[全般]を選択します。右側に表示された[追加のライブラリ ディレクトリ]に、libfigure.libの保存されているパスと、下記のディレクトリのフルパスを入力します(ここで、$MATLABはMATLABのインストールディレクトリを示します)。
$MATLAB\extern\lib\win32\microsoft
7. [リンカ]フォルダ内の [入力]を選択
右側に表示された[追加の依存ファイル]に、下記のライブラリを入力。libfigure.lib は置いてあるディレクトリのフルパスを指定してください。(ここで、$MATLABはMATLABのインストールディレクトリを示します)
$MATLAB\extern\lib\win32\microsoft\mclmcrrt.lib
$MATLAB\extern\lib\win32\microsoft\mclmcr.lib
$MATLAB\extern\lib\win32\microsoft\libmat.lib
libfigure.lib
8. [C/C++]を開き、[全般]を選択
右側に表示される[追加のインクルード ディレクトリ]に libfigure.lib が保存されているパスと下記のディレクトリのフルパスを入力(ここで、$MATLABはMATLABのインストールディレクトリを示します)。
$MATLAB\extern\include
9. [ビルド] メニューから[ソリューションのビルド]を選択
10. EXE の確認
test.exe が生成されますので、libfigure.dll test.exe と同じフォルダに保存します。
・サンプルコード(libfigure.dll を呼び出すラッパー関数)
// test.cpp : Defines the entry point for the console application.
// libfigure is the Shared Library
// Figuretest() is the main function in the library which corresponds to the
// figuretest() function in the .m file which was compiled using mcc
#include "stdafx.h"
#include <libfigure.h>
int _tmain(int argc, _TCHAR* argv[])
{
// Have to find out the paths
if( !mclInitializeApplication(NULL,0) )
{
fprintf(stderr, "Could not initialize the application.\n");
return -1;
}
// Initialize the library
if (!libfigureInitialize()){
fprintf(stderr,"Could not initialize the library.\n");
return -2;
}
else
{
//Call the figure library
mlfFiguretest();
mclWaitForFiguresToDie(NULL);
printf("Success");
// Terminate
libfigureTerminate();
mclTerminateApplication();
}
return 0;
}
Cのラッパー関数を作成する手順につきましては、下記ドキュメントをご参照ください。
・Integrate a Shared Library With a C/C++ Application
■R2010a 以前の場合
アイコンの変更方法は、使用するコンパイラに依存します。詳細につきましては、各コンパイラのマニュアルを参照して下さい。
・Microsoft Visual C/C++を用いた場合
コンパイル対象 MATLAB ファクションファイル、およびアイコンファイルのファイル名は以下の通りとします。
コンパイル対象 MATLAB ファンクションファイル:myfun.m
アイコンファイル:aaa.ico
1.MATLABファンクション名と同じ名前を持つリソーススクリプトファイルを作成します。ソーススクリプトファイルの書式は次の通りです。
アイコンファイル名icon ICON "アイコンファイル名.ico"
この例の場合、適当なテキストエディタを開いて下記1行を追加後、ファイル名を"myfun.rc"として保存します。
aaaicon ICON "aaa.ico"
2. myfun.m、myfun.rc、aaa.icoを同じフォルダに保存します。同フォルダをMATLABカレントディレクトリにして、次のコマンドを入力します。
mcc -mc myfun.m
mbuild myfun_main.c myfun_mcc_component_data.c myfun.rc
上記手順により、アイコンが"aaa.ico"になったアプリケーション"myfun_main.exe"が作成されます。
・LCCを用いた場合
1.MATLABファンクション名と同じ名前を持つリソーススクリプトファイルを作成します。ソーススクリプトファイルの書式は次の通りです。
ConApp ICON "アイコンファイル名.ico"
この例の場合、適当なテキストエディタを開いて下記1行を追加後、ファイル名を"myfun.rc"として保存します。
ConApp ICON "aaa.ico"
2. myfun.m、myfun.rc、aaa.icoを同じフォルダに保存します。同フォルダをMATLABカレントディレクトリにして、次のコマンドを入力します。
mcc -m myfun.m -M "myfun.rc"
上記手順により、アイコンが"aaa.ico"になったアプリケーション"myfun.exe"が作成されます。
※Microsoft Visual C/C++がインストールされているコンピュータで、これを使用せずにLCCを使用する場合、拡張子.rcはVisual Studioに関連付けられているため、以下の手順で、rcファイルをlcc関連のツールに関連付けます。
1. Windows画面で「マイコンピュータ」画面を開く
2. 「ツール」->「フォルダオプション」で「フォルダオプション画面」表示し、「ファイルの種類」タブを選択
3. 「拡張子」からrcを選択し「拡張子'RC'の詳細」の「変更」ボタン押下
4. プログラムの「参照」ボタンを押下します。ここで、lccの付属である「lrc.exe」を指定します。このファイルは以下のURLに存在します。
$MATLAB\sys\lcc\bin\lrc.exe
($MATLABはMATLABがインストールされたフォルダで、matlabrootコマンドで確認することができます)

More Answers (0)

Categories

Find more on スタンドアロン アプリケーション in Help Center and File Exchange

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!