C言語プログラムをVC++から呼び出すには? – プログラミング – Home

C言語プログラムをVC++から呼び出す...
 
通知
すべてクリア

[解決済] C言語プログラムをVC++から呼び出すには?


つまる
 つまる
(@つまる)
ゲスト
結合: 24年前
投稿: 3
Topic starter  

はじめまして、つまると言います。
CもVC++もビギナーレベルです。

今度・仕事で会社で前任者が作ったC言語プログラムに
VC++でインターフェイスを付けることになりました。

インターフェイス部分は問題なくできたのですが、
どうやってC言語で作ったプログラムを呼出そうか、
また、インターフェイスで取得した値をC言語へ
反映するにはどうしたらいいか困っています。

どなたか、「こうしたらいいよ」というのを
ご存知でしたら教えてください。


引用未解決
トピックタグ
ku
 ku
(@ku)
ゲスト
結合: 25年前
投稿: 312
 

現在、何ができて何ができないのか分からないし方法もいろいろあると思うし
実際にC言語のプログラムがどういった形態で提供されるのかも
わからないのだけど、
ソースで提供されるとしたらC言語のヘッダファイルを下記のように
extern Cで括るようにすればC言語の関数を呼べます
DLLかstaticなライブラリなら、組み込み方が何らかのドキュメントに書いてあるでしょう。
#ifdef __cplusplus
extern C {
#endif

元のヘッダファイルの内容

#ifdef __cplusplus
}
#endif

そもそも会社なら隣の人にでも聞いた方が早そうだけど。


返信引用
つまる
 つまる
(@つまる)
ゲスト
結合: 24年前
投稿: 3
Topic starter  

Kuさんどうもありがとうございました。

会社でも、他に使える人が誰もいないからビギナーの私がやって
いるのです。
隣の人に聞けたら、質問の書き込みなんてしませんよ(苦笑)。

手元にあるのは、ソースファイルのみです。
Cの解読しながら、VC++でインターフェイス付けてます。

で、教えていただいたextern cは、MSDNライブラリから知って、
すでに試し済みでした。
しかし、テンプレートエラーがどうしても回避できず、他の方法を
探しているところです。


返信引用
ku
 ku
(@ku)
ゲスト
結合: 25年前
投稿: 312
 

テンプレートはC++の機能だから変ですね。
どういったものか分からないのに違いはないので的確な答えは出せませんが
Cソースは拡張子をCPPに変更しても問題ないので
VCでは拡張子CPPをC++ソースとして認識してくれるので
拡張子を変更してただけでもうまくいくかもしれません。


返信引用
つまる
 つまる
(@つまる)
ゲスト
結合: 24年前
投稿: 3
Topic starter  

kuさん、再度ありがとうございます。

テンプレートは、C++の機能なんですね?
それが入っているっているということは、
手元にあるこれはCとC++の混合言語で
作られてる可能性あるかも...。

まいった。全部VC++で作り直した方が
早いような気がしてきました。

何にしても、もう少し質問を絞り込んで
再度書き込みをさせて頂く事にします。では。


返信引用
ku
 ku
(@ku)
ゲスト
結合: 25年前
投稿: 312
 

ビルドしたときに何がエラーを出したのかとかの情報が必要ですね。
1.自分が作成したC++ソースのコンパイルか
2.他人が作成したCソースのコンパイルか
3.リンクか
なんてあたりの情報です。

テンプレートで思い出しましたがソースに
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
という記述がある場合、これの下に
#include <iostream>
#include <vector>
using namespace std;
なんて書くとコンパイルエラーとなります。

これらは
#define new DEBUG_NEW

#endif
より上に書く必要があります。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました