tlb ファイルを配布してもいいんだけど、
忘れそうな気がするので、exeに埋め込もうとした。
rc ファイルに追加すればよい。2箇所ある。
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
(略)
3 TEXTINCLUDE
BEGIN
"#define _AFX_NO_SPLITTER_RESOURCES\r\n"
"#define _AFX_NO_OLE_RESOURCES\r\n"
"#define _AFX_NO_TRACKER_RESOURCES\r\n"
"#define _AFX_NO_PROPERTY_RESOURCES\r\n"
"\r\n"
"#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_JPN)\r\n"
"#ifdef _WIN32\r\n"
"LANGUAGE 17, 1\r\n"
"#pragma code_page(932)\r\n"
"#endif\r\n"
"#include ""res\\ODesign.rc2"" // Microsoft Visual C++ 以外のツールで編集されたリソース\r\n"
"#include ""l.jpn\\afxres.rc"" // 標準のコンポーネント\r\n"
"#include ""l.jpn\\afxprint.rc"" // 印刷/印刷プレビュー リソース\r\n"
"#endif\r\n"
"1 TYPELIB ""hoge.tlb""\r\n" ★追加
"\0"
END
(略)
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
#define _AFX_NO_SPLITTER_RESOURCES
#define _AFX_NO_OLE_RESOURCES
#define _AFX_NO_TRACKER_RESOURCES
#define _AFX_NO_PROPERTY_RESOURCES
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_JPN)
#ifdef _WIN32
LANGUAGE 17, 1
#pragma code_page(932)
#endif
#include "res\ODesign.rc2" // Microsoft Visual C++ 以外のツールで編集されたリソース
#include "l.jpn\afxres.rc" // 標準のコンポーネント
#include "l.jpn\afxprint.rc" // 印刷/印刷プレビュー リソース
#endif
1 TYPELIB "hoge.tlb" ★追加
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED
しかし、
ビルドすると、Debug や Release 毎に exe の隣に tlb ファイルができる。(デフォルトの設定では)
リソースエディタで、Condisionの設定をした。
↓Visual Studio での見た目。
同じ名前で登録すると、エラーになったので、名前を変えました。
rcファイルをエディタで見ると、
"#ifdef _DEBUG\r\n"
"1 TYPELIB ""Debug\\hoge.tlb""\r\n"
"#else\r\n"
"1 TYPELIB ""Release\\hoge.tlb""\r\n"
"#endif\r\n"
と
#ifdef _DEBUG
1 TYPELIB "Debug\\hoge.tlb"
#else
1 TYPELIB "Release\\hoge.tlb"
#endif
あれ?
IDR_TYPELIB2 とか、3 は、どこ行った?
検索したら、apsファイルに覚えてた。こいつは、ソース管理してないぞ!
他のPCではどうなるのか?
続きは、またこんど。