#import конфликт ADOX с управляемой dll с использованием ADO - PullRequest
0 голосов
/ 30 сентября 2010

У меня есть старое приложение C ++, использующее / clr, вызывающее управляемую dll (написано на C #)

Приложение использует #import для ссылки на ADOX.DLL также ссылается на ADOX.

Все нормально, пока я не добавлю ссылку на свою DLL в проект C ++.Тогда я получаю сотни ошибок при компиляции STDAFX.CPP, связанных с msadox.tli и msadox.tlh.Некоторые ошибки относятся к переопределению интерфейса и тому подобное, другие - к попытке скомпилировать tlh и tli, как если бы они были управляемым кодом.

Я попытался #pragma managed(off) вокруг #import безуспешно.*

Если это уместно, #import использует метод libid:....

Я не понимаю, как возникает этот конфликт и что я могу сделать, чтобы его преодолеть.Пожалуйста, помогите!

1 Ответ

0 голосов
/ 01 октября 2010

Я обошел проблему, удалив ссылку dll из ссылок проекта C ++ и использовав #using "my_managed.dll" в одном файле cpp (единственный, который ссылается на dll).

Затем компилятор предупредил менячто он не смог импортировать некоторые символы ADOX из dll, потому что они уже были определены (#import ...), но поскольку они были только предупреждениями, я мог использовать #pragma, чтобы отключить их и игнорировать их.

Теперь все работает!

...