PASからCPPの関数を使用するには

解決


龍猫  2009-01-30 19:31:06  No: 33259

CodeGear Rad Studio を使用しています。
C++Builder2007, Delphi2007 が使用できる環境ですが、

C++Builder2007でCPP ファイルから  Pas ファイル中の
関数等は呼べるのはわかっているのですが、
Pas ファイル中の関数から  CPP ファイル中の
関数を呼び出すことは不可能なのでしょうか?


igy  2009-01-30 20:00:10  No: 33260

できないと思います。
# DLLにして、呼び出すのはどうですか?


龍猫  2009-01-30 20:50:09  No: 33261

ありがとうございます。
やっぱり無理のようですね。

DLLも考えたのですが・・・

パスカルで処理を行いながら処理状況を表示するために
バーを表示しています。処理中に、処理の一部を
C++で記述されているCPPファイルの計算処理関数を呼び出せれば、
バー表示も簡単にできると思ったのですが。

DLLにするとこのバー表示のためになんらかの特別処理を
行わなければならないことになりますよね。
その方法はわかりませんけど。

そこで
1.Delphi2007に戻って、 
    C++のファイルをパスカルに移植する

2.そのままプロジェクトファイルだけCを使用して
    C++のファイルをパスカルに移植する

3.プログラムの流れ的には以下のようにしたいので
    メイン┬処理
          │└←C++の関数をリンク
          ├入力処理
          ├設定処理
          └登録処理
    ・メインはメニューのボタンを押したときにどれを処理するかだけの
      簡単なコードなのでC++に移植
    ・処理は複雑な処理部分だけ別のPas関数に移動し
      呼び出し部分をC++で作成し、
      バーの表示と切り替え部分をC++で作成し
      別にしたPasの処理関数とC++のファイルの処理関数の
      両方を切り替えて呼び出す

      というようにすれば簡単にできるのでしょうか?

よい方法があれば教えてください。


monaa  2009-01-30 23:57:37  No: 33262

ネイティブコンパイラに多言語を要求するのは酷な話かと思います。
まぁできたら嬉しいんですがね。
DLL化はそんなに敷居の高い作業ではありません、
これを機に一度トライしてみたらどうでしょうか。


龍猫  2009-02-03 02:44:48  No: 33263

DLLで対応してみたいと思います。
ありがとうございました。


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

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






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