Хорошо, так что это действительно сложная проблема, я постараюсь объяснить все возможное.
У нас есть приложение на c ++, которое взаимодействует с Sql Connection следующим образом:
CoCreateInstance(_T("ADODB.Connection"))
Это отлично работает.
Недавно мы превратили весь наш внутренний код в объект Com. Если я напишу программу Vb для загрузки нашего объекта Com и выполню некоторые операции с базой данных, все будет нормально, CoCreateInstance(_T("ADODB.Connection"))
все еще работает.
Мы используем фитнес для тестирования, поэтому я написал приспособление, которое:
1) Принимает строку ввода vb-кода на html-страницу.
2) компилирует код vb
3) запускает код vb, который использует наш объект Com.
* fitnesse - это Java-приложение, поэтому путь к коду проходит и через Java.
Теперь, когда любая операция касается базы данных, объект Com попадает в исключение. Использует окна сообщений и удаление кода. Я сузил проблему до этой строки кода:
CoCreateInstance(_T("ADODB.Connection"))
обычно код возврата равен 0, но с этой цепочкой кода, вызывающего код, я получаю код возврата: 800401F3, который говорит, что он не может найти объект для загрузки.
Я дергаю себя за волосы, пытаясь понять, что происходит. Любая проницательность будет принята с благодарностью.