KERNELBASE.dllについて


しんちゃん  2016-05-10 18:50:31  No: 48171

おはようございます。
以下のコードでSample.exeを実行しようとすると
「モジールKERNELBASE.dllのアドレス  750C76E5でアドレス006676A4に対する書き込み違反がありました。」警告メッセージが発生して実行できませんでした。
原因を知っていらっしゃる方おいでましたら、教えていただけますでしょうか。
お願いいたします。

procedure TfrmTest.Button1Click(Sender: TObject);
const
  exeName = 'C:\App\Sample.exe';
var
  SI : TStartupInfo;
  PI : TProcessInformation;
  command : string;
begin
  command := exeName;
  GetStartupInfo(SI);
  CreateProcess(nil,pchar(command), nil, nil, False, 0, nil, nil, SI, PI);
end;


通りすがり  2016-05-10 19:20:24  No: 48172

環境も書かずに質問とな?

はともかく、SIとPIは初期化して使いましょう。あとUniqueString(command);としたほうがいいかも。


しんちゃん  2016-05-10 19:40:54  No: 48173

通りすがりさん申し訳ありませんでした。
慌てていて大事なことを忘れていました。
環境は以下の通りです。
Windows 8.1 Pro 64bit
Delphi XE5 Enterprise


tor  2016-05-10 19:47:39  No: 48174

モノはヌモユノで一応「初期化」していますし(ちゃんと自分で中身埋める方が望ましいですけど)
ミノはパラメータなので初期化はいらないんじゃないでしょうか。

テミ関数は、第イ引数ィテフゥに渡された文字列を書き換えます。
なのでここには書き換え不可のメモリ領域にある文字列(例えばテとか文字列リテラルとか)は使えません。
これが問題だと思うので、アドバイス通りにユモしたらどうでしょうか?
スススススススススススススススススススススススススススススススススススススススス
ニコ しんちゃん
トコ イーアカッーオッアーィ火ゥ アアコエーコイア シ  スュアセシ初心者セ シッニセシノヘヌ ス「コッッョョョッッアョ「 ス「ー「セ 書込者ノト:ロ 「。ィ」 ン
モコ 

通りすがりさん、さん、ご回答ありがとうございました。
ヲサコスヲサホサ  の後に
ユモィゥサ  を追加すると正常にモョが実行されました。
助かりました。ありがとうございます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加