|
ひろさんこんばんは。
杉浦 まさき です。
>(1)EnvironmentVariable.dll は自作の DLL で、
>GetPrivateProfileString で INI ファイルから取得した値を、
>SetEnvironmentVariable で環境変数に設定している。
これはいつどのように実行しているんでしょうか?
ちなみに、家でも簡単なサンプルを作ってテストしてみましたが、
1回目の実行できちんと表示されていました。
// DLL source (EnvVarTest.dll)
#include <windows.h>
static char buf[1024];
extern "C" __declspec(dllexport) LPCSTR
GetEnv(LPCSTR varname)
{
::GetEnvironmentVariable(varname, buf, 1024);
return buf;
}
extern "C" BOOL WINAPI
DllMain(HANDLE, DWORD r_f_c, LPVOID)
{
if (r_f_c == DLL_PROCESS_ATTACH) {
::SetEnvironmentVariable("TEST", "FOO");
}
return TRUE;
}
// macro
loaddll hidemarudir + "\\EnvVarTest.dll";
message dllfuncstr("GetEnv", "TEST"); // "FOO" を表示
freedll;
endmacro;
|
|