トップページ⇒tech
986コメント350KB

COM の世界を斬る!

■ このスレッドは過去ログ倉庫に格納されています
0001IUnknownNGNG
ATL や MFC でラッピングされていない素顔の COM について語り合いましょう。
0608デフォルトの名無しさんNGNG
>>607
Windowsインストーラでもやっくれると思うがな
あとはjacarta-tomcatのisaapiリダイレクトDLLのインストールで
するような hoge.regファイルを自分で書いて
インストーラのスクリプトで自動実行させて登録させるとか
どっちにしてもテストの時は面倒で膨れ上がったレジストリサイズが
元にもどらないのは不満だけどね
仕様だからしょぅがない
0609デフォルトの名無しさんNGNG

Wizardで作成するATL, ActiveX, などの多数のCOMタイプが不明
だと思いません?

どのCOMタイプがなにが得意なのかみなで整理しまへんか?

ちなみに今漏れの手元で動かしてるのはVC++7.0っす
VC++6.0の人も参加してください

プロジェクト作成時の大項目
(1)ATL Server Webサービス
(2)ATL Serverプロジェクト
(3)ATLプロジェクト

そのプロジェクトに追加する中項目
(a)ActiveXコントロールのMFCサポート
(b)ATL Active Server Pageコンポーネント
(c)ATL COM+1.0コンポーネント
(d)ATL OLEDBコンシュマー
(e)ATL OLEDBプロパイダ
(f)ATL Server Webサービス
(g)ATL コントロール
(h)ATL シンプルオブジェクト
(i)ATL ダイアログ
(j)ATL パフォーマンスモニタ
(k)ATL プロパティページ
(l)MFC ODBCコンシューマ
(m)MFCにATLサポートを追加

ふぅ〜
0610デフォルトの名無しさんNGNG
自分で選べないんじゃ使うな
0611デフォルトの名無しさんNGNG
>>607
rundll32.exeから呼び出せる関数をエクスポートして
それをinfファイルに記述するってのはどうよ?
0612デフォルトの名無しさんNGNG
OLEを使ってDnDを実装しているのですが、
エクスプローラ相手にドロップしたところ、
ファイルの移動が開始するまで(圧縮ファイルを一時ファイルに展開している間)
エクスプローラが固まってしまいます。
これを回避したいのですが、、、

IAdviceSinkとやらで非同期の通信が出来るようですが、
Drag&Dropにも適応できるんですか?
IViewObjectが無いので出来ないような気もするのですが。
0613デフォルトの名無しさんNGNG
>>612圧縮ファイルって何?
ドラッグ開始のタイミングで展開始めれば?
0614デフォルトの名無しさんNGNG
COMってあんまししらないんですけど、
.NET出てきてCOMの価値が下がったってことありません?
今からでもCOM勉強したほうがいいですかね?
0615デフォルトの名無しさんNGNG
自分で判断できないんじゃ使うな
0616デフォルトの名無しさんNGNG
勉強しない方がいいだろ
0617デフォルトの名無しさんNGNG
COMやる価値なし!
0618デフォルトの名無しさんNGNG
知っておいてそんはないな。たとえレガシーだとしても。
0619デフォルトの名無しさん NGNG
概念だけ知ってればよいってことかな
0620デフォルトの名無しさんNGNG
概念? 実装が伴わない概念に意味がないと思うが?
0621デフォルトの名無しさんNGNG
Borland イイ!
0622デフォルトの名無しさんNGNG
えええ、三角形は実体がなくても概念として成立してますよお
0623デフォルトの名無しさんNGNG
&heart
0624VB房NGNG
質問です。

COMコンポーネントに実装されているメソッドがIDispatchインターフェイスなのか、
IUnknownインターフェイスなのか、確認する手段、ツール等はありますか?
(手元にソースがなく、バイナリしか存在しない前提で)


(例) ExcelのQuitメソッドが IDispatch/IUnknown のどちらなのか知りたい。
0625デフォルトの名無しさんNGNG
OLE/COMオブジェクトビューアを使えば確認できるよ

VBはよく知らないけど、ObjectとしてアクセスするとIDispatch経由に
なるんじゃなかったっけ?
0626デフォルトの名無しさんNGNG
>>625

> OLE/COMオブジェクトビューアを使えば確認できるよ

てことは、Visual Studio 6.0 の開発環境があればOKですね。

感謝! m(_ _)m

0627デフォルトの名無しさんNGNG
IDLもないなら、カスタムインターフェースで呼び出せるわけがないだろ。
IDLがあるなら、それみろ。
0628デフォルトの名無しさんNGNG
>>627
IDLをコンパイルしたのがtypelibで、COMモジュールに同梱するのが通例。
OLE/COMビューアはそのビューアでもある。

IDispatchはtypelibを参照して名前でメソッドInvokeするためのインターフェース。
リフレクションみたいなそういう感じ・・・
0629628NGNG
蛇足しちゃうとtypelibをメタデータと読み替えれば.NET。
0630VB房NGNG
>>627-629
タイプライブラリは、単独のファイルなのでしょうか?それとも、
レジストリに記述されているもの??
(よくわかってなくてスマソ)
0631デフォルトの名無しさんNGNG
>>625
oleviewで見ても、そのとき何でアクセスしているかはわからんよ。
>>627
IDLは必須ではない。IDLのないCOM DLLはたくさんあるぞよ。
>>628
IDispatchにtypelibは必須ではありません。
>>629
ちょっと違いすぎますね。
>>630
単独のファイルにすることも、リソースとしてファイルに埋め込むこともできます。
レジストリには記述されません。レジストリに記述されるのはそのtypelibのIDだけ。
0632デフォルトの名無しさんNGNG
>>624
参照設定をしないとコンパイルできない使い方がIUnknown
参照設定をしなくてもコンパイルできる使い方がIDispatch
0633デフォルトの名無しさんNGNG
> oleviewで見ても、そのとき何でアクセスしているかはわからんよ。

あるインターフェースがIDispatch経由で呼び出せるかどうか、
は分るよ
0634デフォルトの名無しさんNGNG
>>633
?インターフェイスは呼び出せませんが?メソッドのこと?
だったら「Quit」がIDispatchで呼び出せるかどうかは
やってみなけりゃわからない。oleview見たってわからない。
0635デフォルトの名無しさんNGNG
>>634
は?
oleviewはIDispatch経由で取得できるインターフェースが列挙できるよ?
0636デフォルトの名無しさんNGNG
>>635
うっそー!(爆笑)

そりゃ単にタイプライブラリの中身見てるだけだろ?
タイプライブラリに書いてあるからって呼び出せるとは限らんよ。
0637デフォルトの名無しさんNGNG
>>635
???
少なくとも列挙できないと呼び出せないよ?
0638デフォルトの名無しさんNGNG
>>637
636に対してだと思うが。。。

列挙って何を?GetIDsOfNamesが成功すりゃInvokeで呼び出せる。oleviewではそれができるかどうかは
わからん、って言ってるんだけど。
列挙ってGetIDsOfNamesのこと言ってるのかい?それが「やってみなけりゃわからない」ってことだよ。
0639デフォルトの名無しさんNGNG
別スレで回答が得られなかったので専門スレで再度質問させていただきます。

普通、COMオブジェクト(ActiveXコントロールとか)をregsvr32でシステムに登録するときは
管理者権限で 行いますが、Users権限でも使えるCOMオブジェクトというのはあるのでしょうか?
例えば、Usersグループのユーザがregsvr32を実行すると、もちろんシステムには登録できませんが
そのユーザの環境だけでは有効になる、というようなものはありえるのでしょうか?

それともCOMオブジェクトというものは必ず管理者権限でシステムに登録しないと
使えないものなのでしょうか?

よろしくおねがいします。
0640デフォルトの名無しさんNGNG
アプリケーションというものはすべて管理者権限でインストールするものだ。
管理者以外が勝手にアプリケーションをインストールするから、ウィルスが
はびこったり、業務アプリが止まったりする。君が使っているPCはおそらく
君のものではあるまい。だったら君にはアプリケーションをインストールする
権限がないのだ。黙って管理者様の言うとおりにしなさい。
0641デフォルトの名無しさんNGNG
>>640
いいえ自分のものです。
また、「アプリケーションというものはすべて管理者権限でインストールするものだ」という
理想論ではなく、>>639に関する答えをいただけると幸いです。
0642デフォルトの名無しさんNGNG
世の中にはバカ管理者も多いけどな。
0643デフォルトの名無しさんNGNG
2000以降ならHKEY_CURRENT_USER\Classesがあるし
side-by-side sharingもあるから
原理的には管理者権限がなくてもインストールできるはずだな
対応してるアプリは(MS製のものでさえ)見たことないけど
0644デフォルトの名無しさんNGNG
>>641
理想論??すべてのユーザーが勝手にアプリをインストールして、
それでもマシンが動き続けると思い込むほうがよっぽど理想論ですよ。
640が一番現実的なんです。

大体自分のものなのに管理者のパスワード知らないってどういうこと?
それがすでに意味不明なんだけど。

サイドバイサイドならMSのHPに情報があるけど、そういう問題ではないね。
0645デフォルトの名無しさんNGNG
>>644
>それでもマシンが動き続けると思い込むほうがよっぽど理想論ですよ。
マシンが正常に動きつづけるなんて一言も言ってないよ。
「管理者以外でもインストールし得る」と考える方が現実的ってだけ。

>大体自分のものなのに管理者のパスワード知らないってどういうこと?
誰もパスワードがわからないなんて言ってないよ。
UsersでもCOMオブジェクトを有効にする環境がありえるのかと聞いてるだけ。

なんか勘違いしてるようだから、もう一回>>639を読み直したほうが良いと思う。
0646デフォルトの名無しさんNGNG
>>645
>UsersでもCOMオブジェクトを有効にする環境がありえるのか
だからありえないといっているだろうが。

インストールするときにだけsu/RunAsするのは不満か?それとも知らないだけか。
パスワード知っているならそれができるだろうが。

管理者以外でもインストールしうるから現状に色々な問題があるんだろ。
マシンが正常に動き続けないんだったらインストールすることに何の
意味があるんだよ。勘違いは君だよ。もっと広い視野で物事考えないと
人間として成長できないぞ。
0647元質問者じゃないがNGNG
>>646
>だからありえないといっているだろうが。

じゃあHKEY_CURRENT_USER\Classesはなんのためにあるんだよ。
「ありえない」んじゃなくて「仕組みはあるけど現状ではそういう運用を
する事が想定されてない」んだろ。

大体技術的に可能なのかどうかを聞いてるところで運用ポリシーの話
持ち出して来る事自体筋違い。
0648デフォルトの名無しさんNGNG
>>646
>だからありえないといっているだろうが。
おいおい>>640以降そんなこと言ったの今回が初めてだろ。

あのさぁ、「実際にここに○○というActiveXコントロールがあってそれを管理者じゃないのに
インストールしたいけどどうすればいいですか?」なんて聞いてないの。
そういうことが可能かどうかって聞いてんの。
0649デフォルトの名無しさんNGNG
Yes/Noで答える質問にはせめてYes/Noで答えれよ。
的外れな講釈たれる奴はたいがい無能。
政治家によくいるね。
0650デフォルトの名無しさんNGNG
>>647-649
おまえら教えて君のくせにずいぶんとエラソーだな。(w 身の程わきまえろ。
そんなに知りたきゃテメーで調べろよ。やってみればいいじゃないか。
やってみてそれが現実的かどうか考えてみなよ。ヒントはくれてやったろ。
UNIXな人にsuってどういうときに使うんですか?って聞いてみな。

>じゃあHKEY_CURRENT_USER\Classesはなんのためにあるんだよ。
>「ありえない」んじゃなくて「仕組みはあるけど現状ではそういう運用を
>する事が想定されてない」んだろ。
その2つにどんな違いがあるのか教えてほしいもんだ。

>あのさぁ、「実際にここに○○というActiveXコントロールがあってそれを管理者じゃないのに
>インストールしたいけどどうすればいいですか?」なんて聞いてないの。
>そういうことが可能かどうかって聞いてんの。
おいおい、その2つにもどういう違いがあるんだ?YesかNoかで答えろってなら、
すでに答えたとおりNoだ。YesであればHow?って質問なら答える必要はないな。Noだから。

少し行間読めよ。ボクイクチュ?
0651デフォルトの名無しさんNGNG
HKEY_CURRENT_USER\Classesについての回答は無し、と。
やはり質問の主旨を理解できずに的外れな講釈をたれるDQN、と。

ま、こいつは根拠無しに「No」ってことしか言えないみたいだからもういいよ。
的外れな運用ポリシー論を主張したいなら別板逝きな。
0652デフォルトの名無しさんNGNG
実際にやってみた。
1.まずテスト用の簡単なCOMオブジェクト(DLL)を作成。これを管理者権限でregsvr32。
2.Users権限からテスト用プログラムでDLLが使えることを確認。
3.HKEY_CLASSES_ROOTに登録されたキーをregeditでファイルに書き出す。(5ファイルできた)
4.テスト用DLLを管理者権限でregsvr32 /u。
5.Users権限からregeditでキーが削除されたことを確認。テスト用プログラムでもDLLが使用不可になっていることを確認。
6.先ほど書き出した5ファイルを編集。(HKEY_CLASSES_ROOTの部分をHKEY_CURRENT_USER\Software\Classesに置換)
7.Users権限でこの5ファイルをレジストリに結合。
8.Users権限からHKEY_CURRENT_USER\Software\Classesにキーが追加され、HKEY_CLASSES_ROOTにも同様に追加されていることを確認。
9.Users権限からテスト用プログラムでDLLが使えることを確認。

よって>>643が正解。
DQN>>640は板違いな講釈をたれた上に答えも間違い。
0653デフォルトの名無しさんNGNG
>>640みたいな読解力のないDQNは早めに放置するのが得策。
いくら説明しても曲解しかしないから時間の無駄。
0654デフォルトの名無しさんNGNG
なんか悲惨。
0655デフォルトの名無しさんNGNG
こうなると質問者を見下して煽ったりしてたのが痛いを通り越して哀れにさえ見えてくる…
0656デフォルトの名無しさんNGNG

DLL(API関数が実装されている、プリミティヴ?なDLL)とCOM(ActiveX)との
違いを教えてください。
(タイプライブラリの有無?)

読むべき書籍を提示して頂けると嬉しいです。
0657デフォルトの名無しさんNGNG
>>656
COMとはソフトウェアの構成部分からアプリケーションを構築する技術の事。
0658デフォルトの名無しさんNGNG
DirectSound Audio Renderer
CLSID{79376820-07D0-11CF-A24D-0020AFD79767}
のオブジェクトを継承したいのですが,どのようにすればよいのでしょうか?
quartz.dll を #import してもインターフェイスは得られなかったです.
インターフェイスが得られないものは継承できないのでしょうか?
ご享受願います.

Windows2000
0659デフォルトの名無しさんNGNG
COMでオブジェクトを継承って???
アグリゲーションのこと?
0660デフォルトの名無しさんNGNG
マルチです
0661658NGNG
アグリゲーションでもコンテイメントでも構いません.
アグリゲーションでできれば楽かな通っているのですが^^;
0662デフォルトの名無しさんNGNG
age
0663デフォルトの名無しさんNGNG
>>656
>読むべき書籍を提示して頂けると嬉しいです。
純粋にCOMって何?
ということなら,「Inside Com」がお勧め。
OLEも含めてなら,「Inside OLE」かな?

0664デフォルトの名無しさんNGNG
>>663
感謝。
0665デフォルトの名無しさんNGNG
「Essential COM」 ってどうですか?
0666デフォルトの名無しさんNGNG
MicrosoftのSOAP使ってサーバーCOMモジュール作ったんだが、
リクエストがある度に、インスタンスの生成・破棄が起きている。
何とかならんもんか。

スレ違いならスマソ
0667デフォルトの名無しさんNGNG
>>665
名著だが、今となって読む価値があるかは、絶妙に微妙
0668デフォルトの名無しさんNGNG
>>666
VC++のBothスレッドモデルでステートレスなCOMを作っているなら、
IObjectControlインターフェイスを実装してCOM+ Component Serviceに登録。


0669 NGNG
0670デフォルトの名無しさんNGNG
>>668
> VC++のBothスレッドモデルでステートレスなCOMを作っているなら、
> IObjectControlインターフェイスを実装してCOM+ Component Serviceに登録。

レスさんくす。
よくわからんのだが、↓のようにしたらとりあえずConstrucrot/Destructorの繰り返しは
なくなった。

class ATL_NO_VTABLE CXXX :
public CComObjectRootEx<CComMultiThreadModel>,
public CComCoClass<CConferenceSession,&CLSID_XXX>,
public IDispatchImpl<IConferenceSession, &IID_IXXX, &LIBID_XXXLib>,
public ISupportErrorInfo
{
public:
DECLARE_CLASSFACTORY_SINGLETON(CXXX);
DECLARE_PROTECT_FINAL_CONSTRUCT();

なんなのコレ?
誰か解説たのんます。
0671デフォルトの名無しさんNGNG
どの部分が?かわからないけど、
DECLARE_CLASSFACTORY_SINGLETON(CXXX);
すると、ひとつのインスタンスをstaticな変数内に保持して以後、それを使いまわす
から、コンストラクタとデストラクタの繰り返しはなくなる。
IObjectControlについては、おいらも説明キボーン
0672デフォルトの名無しさんNGNG
DECLARE_PROTECT_FINAL_CONSTRUCT();
は、べつにいらないんじゃないか
0673デフォルトの名無しさんNGNG
遅レスすまそ

>>656

お主の質問文は
えらく乱れた日本語だが
言いたいことはわかった

Win32もCOMもAPIだ
Win32はC関数の集まり
COMはC++純粋仮想関数の集まり

Win32もCOMもDLLだ
Win32は例えばC:\WINNT\SYSTEM32\USER32.DLLのように位置が決まっている
COMは例えばHKEY_CLASSES_ROOT\CLSID\{00000010-0000-0010-8000-00AA006D2EA4}\InprocServer32=C:\Program Files\Common Files\Microsoft Shared\DAO\DAO350.DLLのようにレジストリに位置が書いてある

COMでないDLLはエクスポートで関数を公開する
COMは仮想テーブルで関数を公開する
0674デフォルトの名無しさんNGNG

COMでないDLLはDllMain()がOSから呼び出される
COMはDllMain()/DllRegisterServer()/DllUnregisterServer()/DllGetClassObject()/DllCanUnloadNow()がOSから呼び出される

タイプライブラリは必須ではない
最小限のものは*.cppと*.defだけで作れる
お勧めはできんが型宣言とGUIDをコピペれば*.hもなしで使える

COMを始める前に知りたかったことって
こんなことだったな、少なくとも漏れは

本は他の香具師が紹介してたからセミナーを紹介しておく
ttp://www.catnet.ne.jp/triceps/hi/COM.htm

まあがんばれや
0675デフォルトの名無しさんNGNG
> COMはDllMain()/DllRegisterServer()/DllUnregisterServer()/DllGetClassObject()/DllCanUnloadNow()がOSから呼び出される
ぷっ
0676専門バカにうんざりNGNG
>ぷっ
ぷっ
0677デフォルトの名無しさんNGNG
ネタにマジレス
regsvr32.exeは、%SYSTEMROOT%\system32の下にいるから、当然、OSの構成要素ですが何か?
0678専門バカにうんざりNGNG
MODESET MODE=SUP,KEY=ZERO
0679デフォルトの名無しさんNGNG
>>677
freecell.exeも、%SYSTEMROOT%\system32の下にいるから、当然、OSの構成要素ですが何か?
0680デフォルトの名無しさんNGNG
つーかregsvr32.exeは必ず入っているとは限らないのだが。
0681デフォルトの名無しさんNGNG
OSでなきゃ何だと言いたいんだよ
カーネルモード以外はアプリとか言ってのける手合いか?
0682??NGNG
Essential COM のはじめの章で

------/*ifaststring.h*/------
class IFastString
{
public:
virtual void Delete(void) = 0;
virtual int Length(void) const = 0;
virtual int Find(void) const = 0;
};

extern "C"
IFastString* CreateFastString(const char* psz);

------/*faststring.h*/------
#include "ifaststring.h"

class FastString : public IFastString
{
const intm_cnt;
char*m_psz;
public:
FastString(const char* psz);
~FastString();
void Delete(void);
int Length(void) const;
int Find(void) const;
};

------/*faststring.cpp*/------//実装略
みたいなのあるんですけど
0683??NGNG
これでDLL作ってからダイアログベースのアプリで使おうとすると

(略)
#include "ifaststring.h"
(略)
void CTestdlgDlg::OnBtn()
{
UpdateData(true);
IFastString* pfs = CreateFastString(m_input); //<-(**)
if(pfs != NULL){
m_length = pfs->Length();
pfs->Delete();
}
UpdateData(false);
}

(**)のところで「error LNK2001: 外部シンボル "_CreateFastString" は未解決です」
って出るんですけど、何でですかね?
0684デフォルトの名無しさんNGNG
>>682,683
エクスポートはどうやってるの?
0685??NGNG
>>684 ifaststring.h をインクルードするだけじゃダメですか?
というか、本にはそう書いてあるので・・・

exportって「_declspec(dllexport)」のことですか?
一応、class IFastString や class FastString の間に挟んでみたりもしたのだが・・・

素人丸出しの質問で申し訳無いス。
0686デフォルトの名無しさんNGNG
http://alink3.uic.to/user/ranran2.html
0687デフォルトの名無しさんNGNG
リンカに、dllを作ったときにできたlibファイルを、教えておかないと逝けない。
それがいやなら、LoadLibraryからGetProcAddressの流れを。
0688??NGNG
>>687
使う側のアプリのプロジェクトの設定で
「リンク」タブのところの「オブジェクト/ライブラリモジュール」に
libファイル名を入れておけばOKですよね?(パスもちゃんと通ってる)
0689デフォルトの名無しさんNGNG
>>685
うん、ダメ。
ちょっとスレ違いになってきたな

http://pc3.2ch.net/test/read.cgi/tech/1036897197/
あたりでどうだ?
0690??NGNG
>>689 誘導されますた。thx!
0691デフォルトの名無しさんNGNG
IWebBrowserApp って何?
IWebBrowser2とはどう違うの?

IWebBrowserAppを取得する時は、IServiceProvider::QueryService
を使うというのも意味が分からないし。
サービス?なんじゃらほい。
0692いつでもどこでも名無しさんNGNG
それはもう古い
0693デフォルトの名無しさんNGNG
http://www.google.co.jp/search?q=cache:lfxMvBkuDT8C:www1.plala.or.jp/knambo/vc/usemore.html+IWebBrowserApp&hl=ja&ie=UTF-8
0694デフォルトの名無しさんNGNG
>>693
> IWebBrowserとIWebBrowserAppがそれであり、前者はコントロール、
> 後者はアプリケーションである。
つまり、サービス=アプリケーション、ってこと?
0695初心者NGNG
所望のサーバーとか所望のインターフェースってどうやって探してますか

今のところ↓とか使ってます
C:\Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\lib\Win32API.csv
0696デフォルトの名無しさんNGNG
dat落ち回避
0697デフォルトの名無しさんNGNG
NdrConformantStructMarshall()
NdrConformantStructUnmarshall()

このAPIの使い方知ってる?
MSDNにも記述ないんだけど・・・。
0698デフォルトの名無しさんNGNG
>>697
使い方はわからないんだけど、それってCOMとは関係ないような...
COMより低レベルのraw RCPで使うものだと思います。
0699697NGNG
うんとですね。
オープン配列/オープン構造体を
カスタムマーシャリングしようとしてるんです。
MIDLのはき出すproxy/stubコードでこのAPIを使っていて、
カスタム化する際にこのAPIを使用しなくちゃいけないと
思うんですけど・・・。

って事なんです。
0700デフォルトの名無しさんNGNG
キリ番Get age! (・∀・)
0701デフォルトの名無しさんNGNG
現在プログラム板老舗スレ第4位!
0702デフォルトの名無しさんNGNG
>>697
外してたらスマソ。MBVカスタムマーシャリングだけが目的なら(構造体とか配列
ってことでそう思ってるわけなんだけど)、直接RPCのAPIを叩かなくても、IMarshal
をオーバーライドしてやって、ストリームへのシリアライズ/デシリアライズ処理を
記述してやればいいんじゃないかな。
#ようはその構造体や配列自体をインターフェイスとして出してやれば良いのではと。
#って、こんな記述で意図がわかってもらえれば楽でいいけどな。
0703デフォルトの名無しさんNGNG
煽りではないのですが、COM+サービス(トランザクション)とパフォーマンス以外で.NETよりCOMを好む理由は何でしょうか?
C++でCOMを使ってたときは、言語との透過性、文字列操作の煩雑さ、エラー処理の言語との不一致などコンポーネントを作ろうとしたのを挫折した覚えがあります.
既存資産の利用を含めて、すべてを置き換えるとはおもいませんが、.NETのほうが私的にはプログラムに使いたく思ってます.仕事あるかは知りませんが…
そんな私に意見お願いします.
0704デフォルトの名無しさんNGNG
>>703
ゆくゆくはその多くが置き換わるものと思ってるけど、
いきなり全てなくなるようなことはない。これはいいよね?
明らかなことは.netからそれらネイティブなコードを
呼び出そうとした場合、C関数をDLLに詰め込んだものよりも
COM形式の方が親和性が高いということ。
ネイティブのコードに対する需要がまだまだあることを考えたら
COMは未だに必要だし、理解しておくべき技術でもある。
こんな風に単純に思ってますがどうでしょうか?
0705デフォルトの名無しさんNGNG
>>703
OpenDocを使いましょう。
0706703NGNG
>>704 同意.
コンポーネント作る簡便さは.NETに多くの点で軍パイがあがるのでしょうか?
COMでないとという必要があれば知りたいので…お願いします.
0707デフォルトの名無しさんNGNG
>>706
>COMでないとという必要
おれの知る限りじゃ、ない
0708デフォルトの名無しさんNGNG
RogersenのCOMの参考書には、VBAからC++で書かれたDLL内の関数を呼び出せ
る、とありましたけど、どなたかいい参考書ご存知ありませんか?よろしくおながいし
ます。
■ このスレッドは過去ログ倉庫に格納されています