2012-09-13 88 views
1

我有一個C++ active x dll,它是從visual studio 2005構建的,我需要從「c」代碼調用它,我必須在mingw32編譯器中編譯它。從普通c代碼中調用C++ activex dll

是否有可能從c調用C++ active x dll或者我必須將dll從activex轉換爲win32。

請給我你的建議。

+0

好奇,爲什麼你只需要使用C? mingw32可以很好地編譯C++。如果您有一個現有的C項目,添加一些C++文件作爲與ActiveX/COM對象交互的包裝器可能會更簡單。 – BrendanMcK

+0

我有一個c源代碼項目,爲此C++包裝器很繁瑣。 – Narayan

回答

2

ActiveX是COM,COM本質上是一個C API(因爲它是Win API的一部分,它本身就是一個C API)所以它是可能的,但它需要對COM有很好的理解。一個好的起點可以在這裏找到: http://www.codeproject.com/Articles/13601/COM-in-plain-C

+0

無論如何,我已經將它改爲win32,因爲我們的項目的其他部分需要win32 dll – Narayan

1

Active-X是一樣的/建立在COM(我不會進入血淋淋的細節)。由於COM的根本目的是爲了讓跨語言的組成部分,那麼,你可以從C調用COM對象

不過,我不知道它會多麼容易,因爲你不會有任何簡單的嚮導的導入並創建包裝類或其他工具支持。

Here is a blog進入一些細節。也許值得一瞧。

+0

我沒有找到該博客的鏈接,請查看 – Narayan

+0

哎呀!抱歉!添加。 – GazTheDestroyer