掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
関数型?の呼出部分がコンパイルエラーになる (ID:40838)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
こんばんわ VB6/VB.NET/C#/Prismなど.NET系はバリバリやってますが ネイティブDelphiは始めて間もないです。2009を使っています。 今回、あるクラス内でDLLを動的にロードする処理を組んでいます。 しかし、正しい(と思っている)コードがコンパイルエラーになるのですが エラーの意味が全く理解できません。 :詳細: 問題の箇所の定義が A = class strict private get_DLLFunc: String; type TDLLFunc = function: PChar; stdcall; //中略 public property DLLFunc: String read get_DLLFunc; end; という定義となっています(DLLロード部分は省きます) そこで、実装部でロード済みの関数を呼び出そうと function A.DLLFunc: String; begin Result := String(TDLLFunc); end; とすると、 [DCC エラー] LS.PiConv.PluginBase.pas(89): E2029 '(' が必要な場所に ')' があります [DCC エラー] LS.PiConv.PluginBase.pas(90): E2029 ')' が必要な場所に 'END' があります の2つが発生します。 では…と思い function A.DLLFunc: String; begin Result := String(TDLLFunc()); end; とすると、 [DCC エラー] LS.PiConv.PluginBase.pas(89): E2029 式 が必要な場所に ')' があります となります… まさかと思い function A.DLLFunc: String; begin Result := String(TDLLFunc(nil)); end; とかするとコンパイルエラーは消えました。 この状態で実行したらどうなるか、まではまだ検証できていませんが もうなにがどうしてこうなっているのか全く理解の範疇を超えています。 どなたか解説をお願いいたします…
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.