ページ 11

DllMain()内でグローバル変数が無効な識別子になる

Posted: 2006年9月04日(月) 20:22
by OverTaker
プロジェクトでDLLを作成したとき、DllMain()内でグローバル変数を記述すると、無効な識別子にされてしまいます。
ActiveBasic5.0β4です。

コード: 全て選択

'-------------------------------------------------------------------
' メモ - このファイルには、DLLの構成要素を記述します。
'        (例:関数定義、グローバル変数、定数定義など)
'
'        エクスポートが必要な関数には、"Export" 修飾子を指定します。
'        (例:Function Export FuncName() As Long)
'-------------------------------------------------------------------
Dim Global As Long

Function Export DllMain(hinstDLL As HINSTANCE, fdwReason As DWord, lpvReserved As VoidPtr) As Long
	'DLLエントリポイント
	Select Case fdwReason
		Case DLL_PROCESS_ATTACH
			'DLLがプロセス空間にロードされた時に実行されます。
			_System_StartupProgram()
			Global = Global    'ここで警告が出る
			DllMain=1
		Case DLL_PROCESS_DETACH
			_System_Call_Destructor_of_GlobalObject()
	End Select
End Function

Posted: 2006年9月04日(月) 20:29
by konisi
解決にはならない話をしますが、β4は一般公開されていないはずなので、ライブラリ開発板で報告した方がいいのでは?

Posted: 2006年9月04日(月) 20:40
by OverTaker
解決にはならない話をしますが、β4は一般公開されていないはずなので、ライブラリ開発板で報告した方がいいのでは?
どうでしょうか。私はライブラリ開発にバグ報告の話題が入ると邪魔かなっと思ったのですが...あとは、別にここでも問題ないと思いました。
まあ、人それぞれ考え方がありますから、ここは山本さんに決めてもらいましょう。(決めてもらうようなものでもない気もしますが...)

Posted: 2006年9月04日(月) 22:37
by 山本
OverTaker さんが書きました:プロジェクトでDLLを作成したとき、DllMain()内でグローバル変数を記述すると、無効な識別子にされてしまいます。
ActiveBasic5.0β4です。
ご報告ありがとうございます。次回のバージョンアップで修正しようと思います。
konisi さんが書きました:解決にはならない話をしますが、β4は一般公開されていないはずなので、ライブラリ開発板で報告した方がいいのでは?
そうですね。こちらは一般の方も見られる場所ですので、開発者向けのβ版に関してはクローズドなライブラリ開発フォーラムでご報告いただけると助かります。
予め、私のほうでこのような指定を取り決めていなかっただけのことですので、あまり気になさらないでくださいね。>OverTakerさん

Posted: 2006年9月04日(月) 23:00
by OverTaker
そうですね。こちらは一般の方も見られる場所ですので、開発者向けのβ版に関してはクローズドなライブラリ開発フォーラムでご報告いただけると助かります。
予め、私のほうでこのような指定を取り決めていなかっただけのことですので、あまり気になさらないでくださいね。>OverTakerさん
いえいえ、そんなことありません。今度からはライブラリ開発のほうで報告するようにします。素早い対応ありがとうございます。