GPSで取得した緯度・経度などの情報があり、それはCで書かれていてコンソール等に表示させることは出来るのですが、その情報(緯度・経度)をC#で使いたいのでデータの受け渡しをしたいと思っています。やり方を教えて下さい。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答4件)

id:aki73ix No.1

回答回数5224ベストアンサー獲得回数27

ポイント17pt

http://www.hatena.ne.jp/1084006396

Cで書かれたプログラムの出力をC#で使いたいのですが、どうすればよいでしょうか? - 人力検索はてな

URLはダミーです

ちょっとこれだけでは分かりません

・GPSデータがファイルで存在して、Cのプログラムで読み込んで表示するのでしょうか?それともCのプログラムがリアルタイムにデータを吐き出すのでしょうか?

・Cのだすデータをリアルタイムに取得して、そのままC#でリアルタイムに処理しなければならないでしょうか?一度Cのプログラムを動かしてからC#で動かせばよいのでしょうか?

------------------------

・情報ファイルが存在するならCのプログラムをC#に移植した方が効率がいいです、リアルタイムに処理する必要があるのなら、移植しなければ実現は無理です

・一度Cで処理したデータでよいのであればファイルにリダイレクトしてファイル化して fread や ReadFileなどで 読み取ればよいのですが、いかがでしょうか?

id:kowkow

「Cのだすデータをリアルタイムに取得して、そのままC#でリアルタイムに処理しなければならない。」

です。無理でしょうか・・。

移植するならCの関数をC#で使いたいのですが、出来るのでしょうか。

2004/05/08 22:02:44
id:popuri_ki No.2

回答回数3ベストアンサー獲得回数0

ポイント17pt

http://www.atmarkit.co.jp/fdotnet/special/dotnet_sdk/dotnetsdk08...

特集:.NET Framework SDKで始める.NETプログラミング(前編) 7.Hello World展覧会(4)−マネージド C++−

マネージドCで Cの関数をマネージドクラスを作ってCの関数をラッピングするといけます。 僕もこの方法でC#からC++のクラス(ソース)をMC++でラッピングして使いました。

id:virus No.3

回答回数183ベストアンサー獲得回数1

ポイント18pt

C#限定ではないですが・・・

先にC#で書いたアプリを起動して、そのアプリからCで書かれたソフトを起動するのが可能であるなら、Cアプリ起動時にパイプ接続(stdout をリダイレクト)して取り込めば良いと思います。

しかしソースがあるのなら、移植した方が確実だと思います。

C# と言っても、元々がC+++αみたいなもんだから移植と言うほどの手間はないです。

って、ラッピングは既出ですね(^^ゞ

id:kowkow

なるほどー、ありがとうございます

2004/05/09 01:56:00
id:aki73ix No.4

回答回数5224ベストアンサー獲得回数27

ポイント18pt

リアルタイムだとそのままでは無理ですね^^;

・パイプ処理などを使うとCのプログラムの処理が終わってからC#の処理が動き始めます

・データをファイルにはき出させながら処理をする場合、C側のプログラムがファイルを共有しながら、データごとにOpen & Closeを繰り返しながら書き出して、C#側で共有しながらポインタを保存して読み出し専用でアクセスしなければなりません

1.プロセス間通信をするコードをC側に追加してデータをC#に投げる

2.メモリマップドファイルするコードをC側に追加してデータをC#と共有してアクセス

3.Windowsメッセージを投げるコードをC側に追加してデータをC#で受け取る

4.localhostでデータを投げるTCPかUDP ClientプログラムをC側に追加して、C#側でサーバプログラムを作って受け取る

と言う方法がありますが、いっそC#にコードを書き換えて移植してしまった方がいいと思います。CのソースがそのままC#で使える方法は知らなかったので(2の方の回答でいけるかもしれませんが、よくわかりせん)書き直さなければならないのではないでしょうか

VC++のMFCアプリケーションに移植ならそれほど手間はかからないと思うのですが、C#上でCのソースを扱ったことが無いので何ともいえません

id:kowkow

みなさんありがとうございました。

方向性がわかりました。

2004/05/09 01:57:35

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません