掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
エラーにならないようにするには? (ID:19249)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
この行でエラー(例外発生)になります。 ShellLink := CreateComObject(CLSID_ShellLink) as IShellLink; なぜ、エラーになっているのかわからないので 直す方法も見つかりません。 エラーが発生している状況は ステップ実行で、この行のあと最終の end; に飛んでしまいます。 エラーメッセージ(ダイアログ等)は表示されません。 この関数をアプリケーションから呼び出すと動作します。 DLLから呼び出した場合にこの現象になります。 DLL内からでは呼び出すことができないのでしょうか? 関数は以下のように作っています。 (実はほとんどがどこかからのコピーです) --------------------------------------------------------------------- type TShortCutData = record FileName: String; PathName: String; WorkFolder: String; Option: String; end; function GetLinkPath(FileName: String): TShortCutData; var ShellLink : IShellLink; PersistFile : IPersistFile; FilePath : array[0..MAX_PATH] of char; WorkDir : array[0..MAX_PATH] of char ; Arg : array[0..MAX_PATH] of char; FileLink : String; wsz : array[0..MAX_PATH] of WideChar; pfd : TWin32FindData; begin FileLink := FileName; ShellLink := CreateComObject(CLSID_ShellLink) as IShellLink; OleCheck(ShellLink.QueryInterface(IPersistFile,PersistFile)); Assert(Assigned(PersistFile)); MultiByteToWideChar(CP_ACP,0,PChar(FileLink),-1,wsz,MAX_PATH); OleCheck(PersistFile.Load(wsz,0)); OleCheck(ShellLink.GetPath(FilePath,MAX_PATH,pfd,SLGP_RAWPATH)); OleCheck(ShellLink.GetWorkingDirectory(WorkDir,MAX_PATH)); OleCheck(ShellLink.GetArguments(Arg, MAX_PATH)); //上から順にプログラムパス名,作業フォルダ,起動オプション //実際のPCではリンク先としてパス名に起動オプションが付加されている Result.FileName := ExtractFileName(FileName); Result.PathName := StrPas(FilePath); Result.WorkFolder := StrPas(WorkDir); Result.Option := StrPas(Arg); end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.