- ベストアンサー
外部シンボル~未解決です。
- Cで書かれているプログラムをマネージプログラム上で流用しようとしていますが、エラーが出力されます。
- このエラーはcのライブラリ(関数)の使用によるものであり、対処方法が分かりません。
- このエラーについて御存知の方、ご教授お願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
★なぜ? >以前、Cで書かれているプログラムがあり、 >今回、マネージプログラム上(.net framework)でソースを なぜ C で書かれたプログラム・ソースをマネージ上で動かそうとしているの? 移植したいの? 大幅に書き換える必要が出てきますけど。 普通にCコンパイラでコンパイルすれば良い。 >たぶん、cのライブラリ(関数)を使用しているからだと思うのですが、 >対処方法が一向に分かりません。 分かっているのならマニュアルを見ながら.NETの命令で置き換えてみましょう。 私なら以前にCで書かれているプログラムをそのまま.NETで動くとは思わないので 最初から書き直しますよ。 ・これは移植の仕方の質問ですよね。
その他の回答 (1)
- Oh-Orange
- ベストアンサー率63% (854/1345)
★アドバイス >書き直さなければならないほど、違うものなのですか? 全く別の言語と思って下さい。 フロー制御は C/C++ とほぼ同じですが全く違います。 >てっきり、VCもc++ということで、 >そして、CもC++の中で書けるということなので、 >できるものだと思っていました。 VC++ は C/C++ のほかに C++/CLI の言語もサポートしています。 ですがアンマネージとは全く違いますので注意して下さい。 C++ は言語仕様で C 言語の機能をそのまま利用できるようになっています。 でも C++/CLI(マネージ系) はもう別言語と思って下さい。全然違うので。 >これをVB.NETで使おうと思っていますので、マネージのほうが使いやすいなぁ VB.NETを使うならそのままVB.NETに書き換えた方がいいのではないかな。 どの程度のソース量かにもよりますが小規模なら書き換えてみたらどうでしょう。 >既存ソースを流用し、抜き出してDLL化するということですので。 マネージで使用できる形に DLL にしないと駄目なのでしょうか? ようするに DLL にする必要があるのかを検討して下さい。
補足
ご返事ありがとうございます。 > VC++ は C/C++ のほかに C++/CLI の言語もサポートしています。 > ですがアンマネージとは全く違いますので注意して下さい。 > C++ は言語仕様で C 言語の機能をそのまま利用できるようになっています。 > でも C++/CLI(マネージ系) はもう別言語と思って下さい。全然違うので。 マネージ系(C++/CLI)とアンマネージ系の 違いが分かるサイトなどありますでしょうか。 (具体的にどういう違いが有るか知りたいと思いますので。) お手数だとは思いますが、よろしくお願いします。 > VB.NETを使うならそのままVB.NETに書き換えた方がいいのではないかな。 > どの程度のソース量かにもよりますが小規模なら書き換えてみたらどうでしょう。 残念ながら、上記のように違うものという前提が無かったというのもあるのですが、 ある程度の量がありますし、できるだけいじらず、 丸ごと、DLL化もしつつ、マネージコードかもできたらと思っていました。 >>既存ソースを流用し、抜き出してDLL化するということですので。 > マネージで使用できる形に DLL にしないと駄目なのでしょうか? > ようするに DLL にする必要があるのかを検討して下さい。 DLL化は必要だと思っています。 もしくは、必要でない場合というのはどういう時でしょうか?
補足
> なぜ C で書かれたプログラム・ソースをマネージ上で動かそうとしているの? > 移植したいの? > 大幅に書き換える必要が出てきますけど。 > 普通にCコンパイラでコンパイルすれば良い。 はい、そうです。<移植 既存ソースを流用し、抜き出してDLL化するということですので。 基本的にはマネージで作成し、修正しないといけないところは 修正してもいいかと思っていました。 (使用するライブラリによるものならば) Cコンパイラでコンパイルすると、アンマネージになってしまいますよね? これをVB.NETで使おうと思っていますので、マネージのほうが使いやすいなぁ ということで、こういうことをしようと思っています。 > 分かっているのならマニュアルを見ながら.NETの命令で置き換えてみましょう。 > 私なら以前にCで書かれているプログラムをそのまま.NETで動くとは思わないので > 最初から書き直しますよ。 もしくは、参照設定に以前使っていたライブラリを 設定すれば、コンパイルエラーがなくなるかなと思ったりもしたのですが。 (新しく付け加えるところは.netでコーディングができるなど) それだったら、Cでコンパイルしたほうが早いってことでしょうか。 VC++.netでソースを組んだことが無いので、 分からないのですが、 書き直さなければならないほど、違うものなのですか? てっきり、VCもc++ということで、 そして、CもC++の中で書けるということなので、 できるものだと思っていました。