0
私はメインコードでインスタンス化し、別のCOMオブジェクトに渡す必要があるインターフェイスのATL/COM実装を持っています。この実装はC++で行われています。C++ ATL COMオブジェクトへの直接アクセス
私の主なC++コードからは、COMポートではなくオブジェクトに直接アクセスし、クラスメンバーとメソッドに直接アクセスしたいと思います。
私は行く方法は、ATL/COMクラスでDECLARE_NO_REGISTRY()を追加することだと思います。 CoCreateInstanceの代わりにmyCOMClass:CreateObject()を呼び出します。私はこれをどのように使用するのかわかりません(そして、例は見つかりませんでした)。
私はいくつかの組み合わせを試してみましたが、成功しませんでした。直接COMオブジェクトを作成するための
//I added this line to call the lib directly
#include "comClass\StdAfx.h"
#include "comClass\comClass_i.c"
#include "comClass\comClass.h"
//I removed this line to bypass COM
//#import "comClass\comClass.dll"
//What can I put here to replace this block, bypass COM
//and being able to access class members??
CoInitialize(NULL);
comClassInterface *myObject = NULL;
HRESULT hr = ::CoCreateInstance(__uuidof(comClass),
NULL,
CLSCTX_INPROC_SERVER,
__uuidof(comClassInterface),
(void**)&myObject);
こちらをご覧くださいhttp://stackoverflow.com/help/mcve –
提案していただきありがとうございます。 Visual Studioで簡単なATL COMクラスを作成することで、最小限の例とはかけ離れたものが作成されます。たぶん問題ははっきりしないかもしれませんが、私はコードを修正するのではなく、必要なことをする方法を見つけようとしています。 – seb007
関連するコードを表示する必要があります。 –