用于GCC / G ++的VC ++ #import指令

时间:2009-06-26 19:31:42

标签: visual-c++ gcc import g++ uuid

我正在尝试测试一个提供VC ++示例的库;但是,我在所有项目中使用gcc / g ++。

嗯,VC ++示例访问库的方式是使用 #import 指令,传递库DLL的位置,然后使用使用命名空间 LIBRARYNAME < / i> ,然后它可以创建一些未定义的类型(我假设它在DLL中定义)并使用__uuidof创建它的新实例。从那以后,为了调用其中一个库函数,这个例子只是做了一个 createdObj-&gt; foo()就是那个。

嗯...... g ++的#import与VC ++的导入不同(见here),所以这个例子对我不起作用。

有没有办法可以转换为在g ++下编译,或者我是SOL,直到库开发人员为我提供了一个我可以试用的静态库?

3 个答案:

答案 0 :(得分:2)

如果您使用的是cygwin,那么此页面:http://www.cygwin.com/cygwin-ug-net/dll.html将为您提供所需的所有帮助。

如果你正在使用mingw,你可以完成同样的事情,但你可能不会有grep和sed,所以你必须使用其他一些方法来进行过滤来获取.def文件。

答案 1 :(得分:2)

如果在VC ++中使用#import,则表示DLL不是常规DLL,而是COM DLL。

由于gcc没有COM支持,你只需要等待库作者编写非COM版本。

答案 2 :(得分:2)

也许它可以帮助您使用OLEViewer和“查看类型信息”来提取IDL的基础知识。或者也许你可以使用VC ++生成的.tlh和.tli文件并将它们导入到你的G ++项目中。

我想这个答案太迟了,但是现在我自己遇到了类似的问题所以我刚刚进入这个主题。希望你按时找到解决方案。

问候。