Классический ASP, передающий объект в VB6 COM dll метод - Несовпадение типов - PullRequest
2 голосов
/ 20 июля 2011

Это одна из самых причудливых проблем, с которыми я сталкивался в свое время, и лучше всего ее объяснить, как многие проблемы с примером в классическом ASP:

Set thing = Server.CreateObject("ClassName") ' a C++ COM dll class
Set tool = Server.CreateObject("OtherClassName") ' a VB6 COM dll class

это не работает

tool.Method thing

это работает

Set session("thing") = thing
tool.Method session("thing")

Когда это не работает, я получаю несоответствие типов, я ОЧЕНЬ озадачен и не знаю, с чего начать, если честно.Есть указатели людей?

1 Ответ

2 голосов
/ 20 июля 2011

Классический VB может ожидать, что параметр tool.Method будет вариантом с типом VT_BYREF, возможно, ваш экземпляр C ++ COM передается как VT_DISPATCH или VT_UNKNOWN, но он преобразуется в VT_BYREF, когда вы сначала сохраняете его в сеансе .

...