皆さんお世話になってます。Windows7、64ビットのパソコン、DelphiXe8で32ビット用で開発したExeファイルをWindowsXp、32ビットのパソコンで実行しようとしたら「kernel32.dllが見つかりません」のメッセージが表示され続行出来ませんでした。
kernel32.dllの修復に関してはネットで複数の原因が書いてあり、うかつに修復をかけてはシステム全体に影響を及ぼすのではと思い御相談した次第です。よろしくお願いします。
Delphi Q&A
http://www.embarcadero.com/jp/products/delphi/faq
の
> Delphiで作成したアプリケーションをWindows Vista、XP、2000、95、98、Meなどで実行することはできますか?
では、
> Delphi XE3〜XE5で開発したアプリケーションは、Windows XP以降で実行できます。ただし、マイクロソフトは、
> Windows XP以前のOSのサポートを既に終了しており、現在の動作環境としてエンバカデロは一切の保証、推奨を行いません。
だそうです。
外しているかも知れません,
32 ビット版の Windows XP の kernel32.dll は SP2 以前と SP3 とではエントリ
ポイントが違います.
SP のバージョンを確認してみてはいかがでしょうか ?
WindowsXPはSP3でした。
> Delphi XE3〜XE5で開発したアプリケーションは、Windows XP以降で実行できます。ただし、マイクロソフトは、
以前のバージョンのデータシートでも「配布対象としてサポートしている環境」で
Windows Xpがあるのは、Delphi XE5までみたいですね。
>以前のバージョンのデータシートでも「配布対象としてサポートしている環境」で
>Windows Xpがあるのは、Delphi XE5までみたいですね。
なんですが,多くの場合動作する可能性の方が高いようです.
Windows 2000 は無理ですが (^^;
kernel32.dll が本当にないということはないと思います.
何と言ってもカーネル(核)ですから.
「KERNEL32.dllから見つかりませんでした」ではなく
「KERNEL32.dllが見つかりませんでした」ですよね ?
以下のテストをしてみました.
(1) [500_コマンドプロンプトを CreateProcess 関数で起動]
http://mrxray.on.coocan.jp/Delphi/plSamples/500_CmdPrompt2.htm
のプロジェクトを Windows 7 64(SP1) + Delphi XE7 でコンパイル
32 ビットの EXE を作成
(2) 作成した EXE を Windows XP(SP3) の PC にコピー
(3) その EXE をダブルクリックで起動
問題なく動作しました.
CreateProcess は KERNEL32.dll にある関数です.
残念ながら,これ以上は分かりません.
ちょっと考えにくいですが,もしかしたら,Delphi XE8 では無理という場合も...
とりあえず何もないメインフォームだけのプログラム(XE8で作成)を対象の環境で動かしたらどうなるか、でしょうか。
また他のXP SP3のPCでそのプログラムを動かして違いがあるのか、という点も確認してみたほうがよさそうです。
試しに、
VMware Workstation 12 Player上の Windows Xp Professional SP3
で、Windows XE8 Starterでコンパイルしたプログラム(VCL, FMX 32bit)を
いくつか実行してみましたが、特にエラーは出ませんでした。
エラーが出るには、何か条件とか、あるのですかね???
>エラーが出るには、何か条件とか、あるのですかね???
Windows XP(SP2) から Windows XP(SP3) になった時に kernel32.dll のことが
話題になった記憶があるのですが.
質問の文章からは何とも言えませんね.
質問された方が,簡単なテストで確認してみないことには.
「何万行のプログラムなので,簡単なコードにはできません」
とならないことを祈っています (笑)
Mr.XRAYさんが
>「KERNEL32.dllから見つかりませんでした」ではなく
>「KERNEL32.dllが見つかりませんでした」ですよね ?
と書かれているように、実際に表示された正確なエラーメッセージも知りたいですね!
新規プロジェクトを作って何も置かずにコンパイルした実行ファイルを
そのWindowsXPで実行したらどうなるのか?
動かないのであればDelphiの設定かな?
動くのであれば、その作ったプログラムから
特殊なことをしている部分を削っていって
どこを削れば動作するのか?
ですかね?
「実行しようとしたら」エラーが出るようですので
フォームが表示されるまでの間に特殊なこととかしていませんか?
何も無い空のフォームを起動させたらWindowsXpで旨く起動しました。私のアプリではFireDacを使用しているのですがそれが理由ですかね??
いつものフレーズですが、最低限の再現ソースを用意してみる(空のフォームだけのプログラムと、うまく起動しないプログラムの間で
問題が再現する最低限のラインを探る)ことで原因がわかってくるのではないでしょうか。
ちなみに、そのFireDacを使用しているプログラムは、開発環境以外のパソコン(問題になっているWindows Xp以外のパソコン)では、正常に動作しますか?
あと、
>私のアプリではFireDacを使用しているのですがそれが理由ですかね??
それを確認したければ、まず、FireDacを使用する新規のプロジェクトで簡単なプログラムを作ってみて、
エラーを出すWindows Xpのパソコンや、その他の(開発環境以外の)パソコンで動作確認してみるも
よいかもしれませんね。
そうですすね、おっしゃる通りだと思います。空からFireDacを何度か埋め込んでみてXpでTestしてみます。
皆さんお世話になっています。あれからFireDacを使った簡単なアプリを作成しテストしてみました。
・Accessデーターベースを繋げる。→ 成功しました。
・MySqlデーターベースを繋げる。→ 「kernel32.dllから見つかりません」→「libmysql.dllを読み込めません」→ 失敗
libmysql.dllはWinndowsXp32に対応する32ビットを使用しています。ネットで色々調べましたらマイクロソフト社のサイトで「kernel32.dllを削除する方法」を試したみましたがC:\WINDOWS\system32に入っているkernel32.dllは主軸である為削除お出来ませんでした。
https://support.microsoft.com/ja-jp/kb/300179#/ja-jp/kb/300179
私の方で考えた理由として・・・
①libmysql.dllを読み込もうとした際kernel32.dllエラーが出るようです。
②Windows7、64ビットのパソコンで32ビット用を開発したのには無理があったのか?(エンバカデロ社では問題無いとの事です)新規にWindows7、32ビットのパソコンを新規で購入しEXEを構築し直した方が良いのか?
③あるサイトでkernel32.dllエラーはメモリーが不安定になっている状況で起きると書いてありました。6年前に購入したWindowsXpではパソコン自体に問題があるのか・・・。
以上です、いまだにWindowsXpを使っているユーザーは多く無視出来ない状況です。何かアドバイスがありましたら宜しくお願いします。
解決法ではありませんが,気になったので,
>kernel32.dllは主軸である為削除お出来ませんでした。
システムがインストールした DLL 類は原則削除できません.
削除するには,所有権の変更 (変更可能であれは) が必要です.
kernel32.dll は Widows の核となる DLL です.
Kernel とは「核」の意味です,これを削除すると,Windows が動作しなくなる可能性があります.
ネットを検索すると,DLL のダウンロードとか修復とか記事があるサイトがありますが,
マイクロソフト以外のサイトには手を出さない方が無難です.
具体的なエラーの内容が不明なので,確実なことは言えませんが,
「が見つかりません」というエラーと「ページ違反」等のエラーは,その意味が違います.
[コンパイルのエラーメッセージ等のコピー方法 ( エラー報告用 ) ]
http://mrxray.on.coocan.jp/Delphi/Others/RunError.htm#10
ン
ところでみんなしつこく聞いているけど、エラーメッセージは本当に「ヒナメホナフウイョが見つかりませんでした」なんですか?
普通なら「○○がヒウイョから見つかりませんでした」となるはずで、
その○○が何だったか?ヲサつまりなくしたものは何ですか?ヲサというのが重要なんですけど。
例えばけいじさんのリンクした記事では
ヲサヲサエントリヲサポイントヲサモネテヲサがダイナミックヲサリンクヲサライブラリ内に見つかりませんでしたコヲサヒウイョ
となっていますが、見つからなかったのはモネテだということですか?
(ちなみにその記事、ウイョを削除しろとは言っていなくて
「ウイョを呼び出してエラーを引き起こしている別のトフフ」を見つけて削除しろと言っているはずです……
あのへげもげな文章を正しく読み取れって無理がありますが)
スススススススススススススススススススススススススススススススススススススススス
ニコ けいじ
トコ イーアオッーケッークィ火ゥ アケコウイコーオ シ スュアセシ中級者セ シッニセシノヘヌ ス「コッッョョョッッイョ「 ス「ー「セ 書込者ノト:ロ 「。」・」 ン
皆さん、すみません。正確なメッセージは「ノテヨがダイナミックリンクライブラリヒナメホナフウイョから見つかりませんでした。」です。あとョですがニトでヘモと繋げる為に必要なトフフファイルです。
スススススススススススススススススススススススススススススススススススススススス
ニコ けいじ
トコ イーアオッーケッークィ火ゥ アケコエーコエエ シ スュアセシ中級者セ シッニセシノヘヌ ス「コッッョョョッッイョ「 ス「ー「セ 書込者ノト:ロ 「。」・」 ン
度々イすみません。ヘョリメチルさんから教えて頂いた方法でメッセージをコピペしてみました。
プロシージャヲサエントリヲサポイントヲサノテヨヲサがダイナミックヲサリンクヲサライブラリヲサヒナメホナフウイョヲサから見つかりませんでした。ヲサヲサ
宜しくお願いします。
スススススススススススススススススススススススススススススススススススススススス
ニコ 通りすがり
トコ イーアオッーケッークィ火ゥ イアコアカコオカ 書込者ノト:ロ 」。 。 ン
正確なエラーメッセージも、そもそも使っているメトツもバージョンも書かィけゥずに中級者?というツッコミはさておき、ノテヨヲサョヲサで検索すると
ヲサュヲサヘヲサッヲサヨヲサヲサスカヲサヲサラヲサリミヲサュヲサモヲサマ
コッッョッッイエイーウウアカッュュュュカュュュ
こんなのが出てきます。ヘモムフィゥのヨカ以降はリミに非対応のようですね。
スススススススススススススススススススススススススススススススススススススススス
ニコ けいじ
トコ イーアオッーケッーケィ水ゥ アエコオキコイエ シ スュアセシ中級者セ シッニセシノヘヌ ス「コッッョョョッッイョ「 ス「ー「セ 書込者ノト:ロ 「。」・」 ン
通りすがりさん、有難う御座います。昨日からのラリ対応版を探していますがなかなか見つかりません。どなたかお解かりの方、お教え下さい。
尚、の正確なメッセージは以下です。
ロニトチテンロミンロヘモムフンュウアエョヲサベンダヲサライブラリヲサロョヲサヲサョンヲサを読み込めません。指定されたモジュールが見つかりません。
ヒントコヲサミチヤネヲサまたはアプリケーションのヲサナリナヲサディレクトリに含まれているか、クカヲサビットであるかを確認してください。ョ
スススススススススススススススススススススススススススススススススススススススス
ニコ
トコ イーアオッーケッーケィ水ゥ アカコイエコウエ 書込者ノト:ロ 」「 、。 ン
ちなみに、ヘモムフヲサのバージョンは何ですか?
また、
ヲサョはラリウイに対応するウイビットを使用しています
とありますが、そのョのバージョンは何ですか?
あと、そのョは、どのようにして入手されたのですか?
スススススススススススススススススススススススススススススススススススススススス
ニコ けいじ
トコ イーアオッーケッアーィ木ゥ アーコウエコオオ シ スュアセシ初心者セ シッニセシノヘヌ ス「コッッョョョッッアョ「 ス「ー「セ 書込者ノト:ロ 「。」・」 ン
お世話になってます。
ヘモバージョン ヲサオョアョキアヲサュ
ョバージョンヲサヲサカョアョカ
入手したサイト↓
コッッョョッッッッ
宜しくお願いします。
スススススススススススススススススススススススススススススススススススススススス
ニコ
トコ イーアオッーケッアーィ木ゥ アアコアエコーク 書込者ノト:ロ 」「 、。 ン
コッッョョッッッオョアョ」
のファイルに含まれるョを使うのは、いかがですか?
スススススススススススススススススススススススススススススススススススススススス
ニコ 通りすがり
トコ イーアオッーケッアーィ木ゥ アエコエカコーカ 書込者ノト:ロ 」。 。 ン
ヘモムフヲサココヲサヘモムフヲサテッテヲサトヲサヌヲサココヲサウヲサテッテヲサモヲサミ
コッッョョッッュッッュュョ
はちゃんと見ましたか?リミはテッテヲサカョーョイまでとなっています。
スススススススススススススススススススススススススススススススススススススススス
ニコ けいじ
トコ イーアオッーケッアーィ木ゥ アオコアイコイー シ スュアセシ初心者セ シッニセシノヘヌ ス「コッッョョョッッアョ「 ス「ー「セ 書込者ノト:ロ 「。」・」 ン
モコ
さん、ついに出来ました。教えて頂いたサイト内のラヲサィクカャヲサウイュゥャヲサレノミヲサチをダウンロード→展開→ョをコピーし実行ファイル直下にコピーしたところ成功しました。
コメントを書いて頂いた皆さん(さん、通りすがりさん、さんヘョリメチルさん、さん)ア週間以上に及ぶ長い支援、本当に感謝しております。有難う御座いました!
ツイート | ![]() |