掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Cからの移行、外字ロック制御が有効にできない (ID:625)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
はじめまして、「らりばど」と申します。 会社の先輩からお祝いにいただいた「Delphi4」を勉強しはじめました。 そして VC6 で作成したソースを Delphi4 に移行しているのですが、 原因がわからない現象が発生し質問させていただきます。 環境:Windows2000 + Delphi4 WinNT系OSから外字ファイルに対するロックを制御するコンソールアプ リケーションプログラムを作成しています。 有効にしたり無効にしたりすることで、外字ファイルの置換を行なう 為です。 VC6 でコンパイルしたEXEでは問題なく動作するのですが、Delphi4 向けに作成し直したソースをコンパイルしたEXEの場合、"無効"に することはできるのですが、一度"無効"にした状態から"有効"にする ことができません。プログラム自体は、エラー処理が実行されるわけ でもなく終了しています。 エラー処理の判断基準が間違っているのでしょうか。 ※※※ C言語側のソース ※※※※※※※※※※※※※※※※※※ typedef BOOL (WINAPI *ENABLEEUDC)(BOOL); ENABLEEUDC lpfnEnableEUDC; HINSTANCE hDll; BOOL bRet; hDll = LoadLibrary("GDI32.DLL"); if (hDll == NULL){ // エラー処理 // } lpfnEnableEUDC = (ENABLEEUDC)GetProcAddress(hDll, "EnableEUDC"); if (lpfnEnableEUDC == NULL) { // エラー処理 // } /* 外字使用の有効/無効 */ bRet = lpfnEnableEUDC(TRUE); // 外字ロックを有効にする時 bRet = lpfnEnableEUDC(FALSE); // 外字ロックを無効にする時 if (bRet == FALSE) { // エラー処理 // } // 成功メッセージ表示 // // 終了処理 // ※※※ Delphi側のソース ※※※※※※※※※※※※※※※※※※ type ENABLEEUDC = function(hMode : Boolean) : BOOL; var FarProc : TFarProc; var lpfnEnableEUDC : ENABLEEUDC; var hDll : Thandle; var bRet : bool; //モジュールのロード hDll := LoadLibrary(PChar('GDI32.DLL')); if hDll = 0 then begin // エラー処理 // end; //モジュールからアドレス取得 FarProc :=GetProcAddress(hDll, 'EnableEUDC'); if FarProc = nil then begin // エラー処理 // end; lpfnEnableEUDC := FarProc; bRet := lpfnEnableEUDC(TRUE); // 外字ロックを有効にする時 bRet := lpfnEnableEUDC(FALSE); // 外字ロックを無効にする時 if bRet = FALSE then begin // エラー処理 // end; // 成功メッセージ表示 // // 終了処理 // ※※※ 以上 ※※※※※※※※※※※※※※※※※※ 最後に、申し訳ありませんが以下の2箇所の掲示板にて同様の質問を 挙げさせていただいております。 http://madia.world.coocan.jp/index_main.htm http://member.nifty.ne.jp/h_kova/
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.