HOME | プログラミングTClock |
TClock Light(031107以降)では、次のようにtcdll.tclockとtclang*.txtのバージョンをチェックをしています。
common/common.h の冒頭には、次のような文字列の定義があります。tcdll.tclockに大きな変更を加えた場合や、プロパティー画面を変更した場合は、この文字列を書き換えます。自分でTClock LightをベースにしたTClockを作るときは、"TClock Taro ver.1.0" のようにするといいでしょう。
#define TCLOCKVERSION "TClock Light 031107"
dll/main.cには、次のようなAPI関数GetTClockVersionを用意しています。
void WINAPI GetTClockVersion(char* dst)
{
if(dst) strcpy(dst, TCLOCKVERSION);
}
exe/main2.cでは、このAPIを使ってDLLのバージョンを照合します。
BOOL CheckTCDLL(void)
{
char str[80];
GetTClockVersion(str);
if(strcmp(str, TCLOCKVERSION) != 0)
{
MessageBox(NULL, "Invalid file version: tcdll.tclock",
"Error", MB_OK|MB_ICONEXCLAMATION);
return FALSE;
}
return TRUE;
}
tclang*.txtの [Main] セクションでは、Version= にcommon/common.hに記述したのと同じ文字列を書いておきます。
[Main] DialogFont=MS Pゴシック,9 Version=TClock Light 031107
common/tclang.cには、tclang*.txtのバージョンを管理する関数CheckTCLangVersionがあります。この関数は、property/main.c のOnInitDialogから呼ばれます。
void CheckTCLangVersion(void)
{
char buf[80];
if(GetPrivateProfileString("Main", "Version", "", buf,
80, g_langfile) > 0)
{
if(strcmp(buf, TCLOCKVERSION) == 0) return;
}
g_langfile[0] = 0;
}