トップページ > プログラム > 2015年04月14日 > O9K5PlsD

書き込み順位&時間帯一覧

16 位/142 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000000001113



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
【Win/Mac/Linux/Android/iOS】 Qt 総合スレ 16

書き込みレス一覧

【Win/Mac/Linux/Android/iOS】 Qt 総合スレ 16
786 :デフォルトの名無しさん[]:2015/04/14(火) 21:32:51.37 ID:O9K5PlsD
いままでC言語しかやってなくて、GUIは初めてだからよくわからないんだ。
もうちょっと教えてください。
・・・qtじゃなくてc++の話になってる気もするけど。

ボタンが押されたら別関数をコールして処理は丸投げ、結果をテキストボックスに出力したい。
(別関数の部分はgccとコンソールで動作確認済み)

gccで作ったファイルをプロジェクトに組み込んでビルドは通しけど、
on_pushButton_clicke()からコールすると定義されていないって怒られる。
単純に組み込んだだけだからクラス化していない。

on_pushButton_clicke()は MainWindowクラスの関数だから、クラス外の関数なんてしらねーよってこと?
そうすると、cで作った処理をまるっとクラス化して、
MainWindowクラスの派生元のクラスになるようにしないとだめ?
それともMainWindowクラスにcで作った処理を丸ごといれちゃうとか?
【Win/Mac/Linux/Android/iOS】 Qt 総合スレ 16
790 :デフォルトの名無しさん[]:2015/04/14(火) 22:48:22.78 ID:O9K5PlsD
>ヘッダファイルや-lオプションでライブラリのリンクでも抜けてんだろ
mainwindow.cppの中でcのヘッダファイルはインクルードしてる。
Qtウィジットアプリケーションを選択して作ったプロジェクトに、gccで作ったファイルを追加しただけだと、
ライブラリのリンクとかビルドの設定がが足りてないってこと?

部品はgccで完成したから、あとはガワ作って移植するだけだー
って思ってたんだけど移植の方法が全然分からんですよ・・・。
【Win/Mac/Linux/Android/iOS】 Qt 総合スレ 16
791 :デフォルトの名無しさん[]:2015/04/14(火) 23:09:46.20 ID:O9K5PlsD
たとえば↓のcファイルを移植すると
◆test_1.c
  #include <stdio.h>
  #include "test_1.h"
  void test_1(void)
  {
    printf("hoge\n");
  }
◆test_1.h
  void test_1(void);
---------------------------------

■mainwindow.cppでは↓って書いてる
  #include "mainwindow.h"
  #include "ui_mainwindow.h"
  #include "test1.h"    ★ここ追加

  〜省略〜

  void MainWindow::on_pushButton_clicked()
  {
    test_1();      ★ここ追加
    ui->textEdit->setText("hello");
  }
---------------------------------

extern "C" は試してたけどビルドが通らなくて何が間違ってるのか分かってなかった。
で、上の例で最低限の処理にしてみたらextern "C" で通った!

実際はcの関数内で構造体とか配列で色んな処理をしてるから、そっちでエラーになっていたのか・・・。
これさ、全部に対してextern "C"をやらないとだめってこと?
移植の方法を勉強しないといけないか・・・


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。