0

我有一个使用 /clr 调用托管 dll 的旧版 C++ 应用程序(用 C# 编写)

该应用程序用于#import引用 ADOX。该 dll 还引用了 ADOX。

一切都很好,直到我将对我的 dll 的引用添加到 C++ 项目中。然后我在编译时遇到数百个与和STDAFX.CPP相关的错误。一些错误涉及接口重新定义等,其他错误涉及尝试编译 tlh 和 tli,就好像它们是托管代码一样。msadox.tlimsadox.tlh

我已经尝试#pragma managed(off)#import没有成功。

如果相关,则#import使用该libid:...方法。

我不明白这种冲突是如何发生的,以及我能做些什么来克服它。请帮忙!

4

1 回答 1

0

我通过从 C++ 项目引用中删除 dll 引用并#using "my_managed.dll"在单个 cpp 文件(唯一引用 dll 的文件)中使用来解决问题。

然后编译器警告我它无法从 dll 中导入一些 ADOX 符号,因为它们已经被定义(由#import ...)但是因为它们只是警告,我可以使用 a#pragma来关闭它们并忽略它们。

现在一切正常!

于 2010-10-01T16:16:59.430 回答