- - PR -
C++でEXCELファイルを読む方法
«前のページへ
1|2|3
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-01-10 10:11
これは知りませんでした。勉強になります。
ということは、excel.tliを直接編集するということでしょうか? (_com_dispatch_method関数はまったく知らなかった。(リファレンスにも載っていないし) Dispath::Invokeを簡単にできるものっぽいですね。。。)
COleDispatchDriver::InvokeHelperのところですかね。 確かにこちらの方が作業が楽かも。 | ||||||||||||
|
投稿日時: 2007-01-10 10:25
Blueさん、Tdnr_Symさん
ご回答ありがとうございます。 まだCOMを勉強不足(現在InsideComを読んでます)で 理解し切れていませんが、有用な情報をありがとうござ います。ぜひ参考にさせていただきます。 ところで、VBを使ったほうが楽とのことですが、C++か らVBの関数を呼び出すことは簡単なんでしょうか? 現行のものがC++でできているので、そこにVBを組み込 む方法がわからないものですから。 もしできるとすると、C++とVBでかかれたプロダクトを 1つのDLLとして提供することは可能でしょうか? ちなみにC#を使ってもVBのように簡単に実現できるの でしょうか?C#もまだよく分かっていませんが、なんと なく、C++/VBよりC++/C#の混合プログラミングの方が 親和性が高くて、1つのDLLとして提供できそうな気が したものですから。 どんどん話がそれて行くようで申し訳ありませんが、 アドバイスいただければ幸いです。 | ||||||||||||
|
投稿日時: 2007-01-10 10:29
こんにちは。
#importで自動生成される.tlh, .tliファイルは何度も生成しなおされてしまうので、編集しにくいですね。 コメントに"DO NOT EDIT!"とも書かれていますし。 思い切って、一度#import文をはずして、拡張子を.tlh, .tliから.h, .cppに変更して プロジェクトに取り込んでしまうのも、アリなのかなと思うのですが。 | ||||||||||||
|
投稿日時: 2007-01-10 10:40
やっぱり、生成しなおされるんですね。 MFCの場合は、.hと.cppでプロジェクトに入るので編集は楽そうですね。 | ||||||||||||
|
投稿日時: 2007-01-10 10:50
VBといってもVB6のほうです。(VB.NETだとC#とほぼ同じなんで) VB6でActiveX DLLを作るので、VC++側では、Excelを使うときのように COMと同等にして扱えば問題ないのでは?と思っています。
VB.NET、C#の場合、組み込まれる対象のVC++のプロジェクトによります。 Win32ベースである場合、結局COMとしてVB.NET,C#で生成されてたクラスライブラリ を見なければならないのでやっていることは、VB6で作ったActiveX DLLを使うのと ほぼ同じなんじゃないでしょうか。 (CLR(マネージド)プロジェクトであれば参照設定から簡単に使えるらしいけど。) それと、なぜVB.NET,C#ではなくVB6を使うと便利といったのかは、 過去ログでも何度も話題に上がっていると思いますが、 VB.NET,C#からExcelを操作するには結構面倒だからです。 (汚いコードを書けば、Excelのプロセスが残ってしまうとかよくあります。) その分、VB6のCreateObjectを使う方法であれば、よくわからないけど、 VB.NET,C#ほどシビアにならなくてもイイっぽいです。 (VC++の場合も_com_ptr_tクラスを使えば便利なんです。MFCの場合はよくわからない。) | ||||||||||||
|
投稿日時: 2007-01-10 13:31
Blueさん,
ご意見ありがとうございます。 私には話しが高度過ぎて内容の半分ほどしか理解できませんが、 今から他言語を勉強するより、C++でCOMを勉強したほうが早そう なので、今回はご教示いただいた方法を参考にC++(MFCになるか な?)で取り組みたいと思います。 また行き詰ったらご相談させてください。 どうもありがとうございました。 |
«前のページへ
1|2|3