C言語で書かれたソースをActiveXにしたい

[戻る]
kaz777 2002/12/05(木) 18:34:06
C言語で書かれた古いソースをVC++を使ってocxに
したいのですが、可能でしょうか?
私、VC++は初めてで、本屋でテキストを漁ったのですが
どうも良い参考書が見つかりません。
参考書の情報だけでも結構です。
どなたか教えてください。

OS:Win2000、VC++ Ver6.0 SP2

渋木宏明(ひどり) [E-Mail] [HomePage] 2002/12/05(木) 20:56:00
>C言語で書かれた古いソースをVC++を使ってocxに
>したいのですが、可能でしょうか?

そのソースの内容や動作で話は変わります。
「何をしている」プログラムなんでしょう?

単なる演算なら何も問題は無いと思いますが、例えば、printf() や scanf() などによ
るコンソール入出力を伴うものならかなり書き換えなければならないでしょう。

kaz777 [E-Mail] 2002/12/06(金) 10:59:48
お返事ありがとうございます。

Cのソースはargv[]で入出力ファイル名を渡し、
入力ファイル→編集→出力ファイル という処理を
行っています。
fopen()、fclose()、fread()、fwrite()、printf()、
sprintf() などを使用しています。

printf()、sprintf()についてはここで使用しなくても
エラーを返すことで上の処理(HTMLから呼び出し、
javascriptでリターンを処理します)でエラー表示します。

現在、MSDNを参考に、プロジェクト→新規作成→MFC ActiveX Control Wizard 
ということをやってみました。
この中にC言語のソースを埋め込めばいいように考えているのですが
「どこに」「どのように」というところで困っています。
メソッドの追加でCのソースを呼び出すようにすればよいのでしょうか?
それとも、まるで見当違いのことをしているのでしょうか?

渋木宏明(ひどり) [E-Mail] [HomePage] 2002/12/06(金) 21:03:05
>Cのソースはargv[]で入出力ファイル名を渡し、

↑なんかは変更しないと駄目ですね。
例えば、プロパティでファイル名を与えるようにするとか、メソッド呼び出し時の引数
で与えるとか。

>printf()、sprintf()についてはここで使用しなくても
>エラーを返すことで上の処理(HTMLから呼び出し、
>javascriptでリターンを処理します)でエラー表示します。

結果を「どう受け取りたいか」も見直しが必要ですね。
単純な文字列や数値1個きりで結果が表せるなら、メソッドの戻り値とするのが素直な
実装だと思います。

>メソッドの追加でCのソースを呼び出すようにすればよいのでしょうか?

基本的にはそれでOKだと思います。
ただし、↑でも触れたように入出力に関しては自分で調整しなくてはなりません。

kaz777 [E-Mail] 2002/12/06(金) 22:07:46
[[解決]]
どうもありがとうございます。
助かりました。

古いスレッドには追加発言できません。