• ベストアンサー

C++ Builderでの自作関数について

初歩的な質問で申し訳ありません。 C++ Builderでアプリケーションを作成する際、 様々なアプリケーションで自作の関数を利用したいのですが、 どうすればよろしいのでしょうか? 【イメージ】 ボタンクリックのイベント{ jisaku_kansu(); } 関数名の付け方、宣言の仕方、作成するアプリケーションのソースの どこで参照するかなど、手順を教えてください。

noname#25605
noname#25605

質問者が選んだベストアンサー

  • ベストアンサー
  • KoHal
  • ベストアンサー率60% (110/181)
回答No.1

>関数名の付け方 自分で好きにつけてください。C/C++の仕様に準拠していればどのような命名でも自由です。 >宣言の仕方 普通はヘッダファイル(*.h)に、宣言をまとめ、ソースファイル(*.cpp)に定義をまとめますね。 //hoge.h #ifndef HOGE #define HOGE void hoge(); #endif //hoge.cpp #include "hoge.h" void hoge() { ... }; namespaceを使用することを推奨しますが、 「namespaceってなに?」というのでしたら気にしないで下さい。 >作成するアプリケーションのソースのどこで参照するか その関数を使いたいところで参照するに決まっています。 さて、もう少し具体的に、自作の関数を複数のアプリケーションのプロジェクト間で使いまわすには多くの方法があります。 1.自作関数のソースファイルを使用したいアプリケーションのプロジェクトに追加する。 2.自作関数のオブジェクトファイルを用意しておき、使用したいアプリケーションのプロジェクトにリンクする。 3.自作関数をライブラリ化しておいて、以下同様。 4.自作関数をDLL化して、以下同様。 1.について  自作関数のソースファイルを使用するプロジェクトに追加。  自作関数を実際に呼出すフォームのソースファイルに自作関数のヘッダファイルをインクルード。 2.について  自作関数のソースファイルをコンパイルする。  オブジェクトファイル(*.obj)が生成されるのでそれをどこかに保存する。  自作関数のヘッダファイルに次の一行を追加    #pragma link "(パス)オブジェクトファイル名"    ※パスの通ってるディレクトリにオブジェクトファイルがあるならパスは不要  自作関数を実際に呼出すフォームのソースファイルに自作関数のヘッダファイルをインクルード。 3.4.は省略。ご自分で勉強してください。 一番分かりやすいのは1. 一番手っ取り早いのは2. 私はたいてい2.で済ましてます。

noname#25605
質問者

お礼

ご回答ありがとうございました。 作成することができました。

関連するQ&A

  • C++ Builderでの自作関数

    C++ Builderでの自作関数 初心者のため、初歩的な質問で恐れ入ります。 今、C++ Builderを使いアプリを作成中なのですが、 下記のような自作関数を使いたいのですがどのように書くと エラーがでなくなるのでしょうか? main関数中で、あるif文に該当すると自作関数の内容を行いたいと思っています。 自作関数には、テキストファイルへ文字列データの書き出しをする内容を書いています 今、引数にはvoidを使っていますが、 「TForm1のサイズが不明、あるいはゼロ」「宣言の構文エラー」というエラーが出てしまいます。 voidにしているのが原因でしょうか? 何もわかっていなく恐縮ですが、よろしくお願いします!

  • 自作関数について

    質問なのですが自作関数を作成した際に、その関数ごとに 保存などはするのでしょうか?それとも、通常通り 関数が入っているソースごと保存するのでしょうか? 自分のイメージでは関数のソースをフォルダ等にまとめて 一括管理しているのかと思っているのですが、、、 実際どうななんでしょうか?よろしくお願いします。

  • C++.NETのWindowsフォームで自作クラスを制御したい

    C++.NETでWindowsフォームアプリを作っています。 状況をわかりやすくするために、例えを使って説明すると ・Form.h起動時に、自作の「おにぎり」クラスのオブジェクト(obj)を1つ作成する。「おにぎり」クラスには「塩をふる」と「のりをまく」の2つの関数がある。 ・Form.h上には ボタン1、ボタン2がある。 ・ボタン1をクリックしたときのイベントとして、objの「塩をふる」、ボタン2をクリックしたときのイベントとして、objの「のりをまく」を実行するようにしたい いろいろ調べた結果、http://www.atmarkit.co.jp/fdotnet/special/vcppinvista01/vcppinvista01_03.htmlに行き当たり、自動生成されたWindowsフォームのソース(?)と、自作のクラスは単純に混在できない、ということがわかりました。 そこで質問なのですが、 ・このURLに書かれているとおりラッパークラスというものを作る必要があるのでしょうか? ・別の情報では、クラスを宣言するときにポインタとして宣言(おにぎり* obj)し、コンパイラの指示通り、.から->へ変えるだけでよい、とありましたがそれは解釈違いでしょうか? 現状では後者のように設定すると正常にコンパイルできるのですが、イベント発生時の「塩をふる」という関数内部で例外が発生します。(イベントごとにオブジェクトを作成する方法だと例外が発生しないので、関数のバグではないはずです) まとめると、フォーム内のすべてのイベントが1つのオブジェクトに対して動作する、というケースを想定しているわけです。 何かアドバイスなどいただけないでしょうか? よろしくお願いします。

  • C++builderにおけるwhile()の使い方

    はじめまして、当方プログラムの初心者ですのでわかりづらい質問をしていますかもしれませんがよろしくお願いします. (質問)Borland C++ Builderを使っています。現在困っている点は単純に説明します.プログラムではウィンドウ上のボタンを押したというイベントが起きるとwhile()の無限ループに入るようになっています.このままだと実行したときにフリーズしてしまうのでwhile内にApplication->ProcessMessageを入れてあります. void __fastcall TMain_Form::Button1Click(TObject *Sender) {  while(1){ Application->ProcessMessage .............. } } このようなwhile突入ボタンがひとつのときはいいのですが、複数のボタンを作って、それぞれに対応するwhileを実行したいのですが、どうしてもひとつだけ動いて他が止まってしまいます. どなたか無限ループをマルチスレッドで複数、回らせる方法を教えてください. また、なんでもかんでもProcessMessageをいれてやればWINMAINに処理が移って、マルチスレッドになると思って使っているのですが間違いでしょうか? よろしくお願いします.

  • C++Builder6でFlashのような画面を作りたい

    タイトルどおりなのですが、C++Builder6でFlashのように ボタンが立体的でかわいかったり、マウスをボタン上に持っていくと 色が変わったり、 リストビューや、タブコントロール、ストリンググリッド等も 全体的にかわいらしいような画面を作りたいと思っているのですが、 ある程度色を変えるくらいならできるのですが、形を変えたり、マウスの動きに反応したり、影の大きさや色を変えたりすることができません。 全部をImage等のCanvasとして作成すればできるのかもしれませんが… 何かよい方法はないでしょうか? よろしくお願いいたします。

  • C++Builder6 での複素数計算

    C++builder6 で複素数計算が出来なくて困っています、 UNIT1.CPPのヘッダー部分に  #include <vcl.h>  #pragma hdrstop  #include <iostream>  #include <complex.h>  #include "Unit1.h" //-----------------------------  #pragma package(smart_init)  #pragma resource "*.dfm" を書いて イベントハンドラ部分に変数の宣言   complex<double> z; として緑色三角形の実行ボタンをクリックすると   「未定義のシンボル complex」 と言うエラーが発生します、 この解決方法を教えて頂ければ幸いです、宜しくお願いします。 (なお C++builder5 では何の問題もなく複素数計算のソフトが出来ていました)   

  • window.onload=の関数呼出で()が不要

    window.onload=の関数呼び出しで()が不要なのはどうしてでしょうか? ・windowオブジェクトのonloadイベントハンドラだから? ・例えば、imageオブジェクトだったらどうなるでしょうか? hoge = new Image(); hogeに対して何か処理; hoge.onload = kansu; or hoge.onload = kansu(); http://www5e.biglobe.ne.jp/~purest/javascript/zakki/onload.html

  • EMBARCADERO C++Builder 2010を使用してCのプ

    EMBARCADERO C++Builder 2010を使用してCのプログラミングを勉強しています。 http://okwave.jp/qa/q3367120.html 上記の質問を参考に、ソースを書いて、コンソールアプリケーションでプロジェクトを作成、プログラムを動作させることはできています。 ただ、プログラム実行が終わった後もコマンドプロンプトを表示させたままにして動作を確認したいのですが、どのように設定すればいいのでしょうか?

  • Borland CからBuilderへのプロジェクト変換について

    Borland C++ 5.01で作成されたアプリケーションの開発環境をBorland C++Builder 6の開発環境に移し変えることになったのですがBCB6で新しくプロジェクトを作り、ソースファイルを1つずつ移行させていったのですがコンパイルエラーが山ほどでてきます。 C言語自体、あまり詳しくないのでうまく説明できませんがOWL?というコンポーネントが使われている為かと。。。 1つずつ潰していけばいいのですが、もっと簡単な方法がないものかと試行錯誤しております。 何かプロジェクト変換するツールやこのようにすれば?というような意見、情報などないでしょうか?

  • 自作関数をメニューボタン表示

    自作関数で消費税を作作成しました。 Function 消費税(金額) 消費税 = Int(金額 * 0.05) End Function Excelで表を作成して、セルに関数を入力しておりましたが、 VBAで作成したいと考え、教本で作成しました。 使用頻度が高いので、メニューボタン(もしくはツールボタン)に作成したいのですが、可能でしょうか。 よろしくお願いします。