Я пытаюсь сделать что -то похожее на это: замена VB6 DLL, вызванный вызовом CreatedIspatch на эквивалент C# < /p>
Оба проекта - x86. < /p>
Я получаю эту ошибку, когда пытаюсь запустить приложение C ++: ошибка -2147221164: класс не зарегистрирован < /p>
Вот код приложения (C ++): < /p>
CoInitializeEx(NULL, NULL);
CRuntimeClass::CreateObject("TryIt.Application");
COleException *oleException = new COleException;
theServer.CreateDispatch("TryIt.Application", oleException))
< /code>
theServer - это экземпляр класса, который расширяет coledispatchdriver. < /p>
Вот код DLL (C#): < /p>
[ComVisible(true)]
[ProgId("TryIt.Application")]
[ClassInterface(ClassInterfaceType.AutoDual)]
public class Application
{
}
< /code>
Это то, что реглас, сгенерированная из C# dll: < /p>
REGEDIT4
[HKEY_CLASSES_ROOT\BlahBlah.MyClass]
@="TryIt.Application"
[HKEY_CLASSES_ROOT\BlahBlah.MyClass\CLSID]
@="{7EF4A2CF-4C42-326C-8B0B-01C4A36D08C1}"
[HKEY_CLASSES_ROOT\CLSID\{7EF4A2CF-4C42-326C-8B0B-01C4A36D08C1}]
@="TryIt.Application"
[HKEY_CLASSES_ROOT\CLSID\{7EF4A2CF-4C42-326C-8B0B-01C4A36D08C1}\InprocServer32]
@="mscoree.dll"
"ThreadingModel"="Both"
"Class"="TryIt.Application"
"Assembly"="TryIt, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
[HKEY_CLASSES_ROOT\CLSID\{7EF4A2CF-4C42-326C-8B0B-01C4A36D08C1}\InprocServer32\1.0.0.0]
"Class"="TryIt.Application"
"Assembly"="TryIt, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
[HKEY_CLASSES_ROOT\CLSID\{7EF4A2CF-4C42-326C-8B0B-01C4A36D08C1}\ProgId]
@="BlahBlah.MyClass"
[HKEY_CLASSES_ROOT\CLSID\{7EF4A2CF-4C42-326C-8B0B-01C4A36D08C1}\Implemented Categories\{62C8FE65-4EBB-45E7-B440-6E39B2CDBF29}]
< /code>
Можно ли это вызвано применением C ++, которое не сможет найти dll? < /p>
Я заметил, что местоположение DLL не включено В записях реестра, но я поместил его в тот же каталог, что и приложение.>
Подробнее здесь: https://stackoverflow.com/questions/793 ... equivalent
Замена DLL C ++, вызванную вызовом CantureIspatch с помощью эквивалента C# ⇐ C#
Место общения программистов C#
1738062545
Anonymous
Я пытаюсь сделать что -то похожее на это: замена VB6 DLL, вызванный вызовом CreatedIspatch на эквивалент C# < /p>
Оба проекта - x86. < /p>
Я получаю эту ошибку, когда пытаюсь запустить приложение C ++: ошибка -2147221164: класс не зарегистрирован < /p>
Вот код приложения (C ++): < /p>
CoInitializeEx(NULL, NULL);
CRuntimeClass::CreateObject("TryIt.Application");
COleException *oleException = new COleException;
theServer.CreateDispatch("TryIt.Application", oleException))
< /code>
theServer - это экземпляр класса, который расширяет coledispatchdriver. < /p>
Вот код DLL (C#): < /p>
[ComVisible(true)]
[ProgId("TryIt.Application")]
[ClassInterface(ClassInterfaceType.AutoDual)]
public class Application
{
}
< /code>
Это то, что реглас, сгенерированная из C# dll: < /p>
REGEDIT4
[HKEY_CLASSES_ROOT\BlahBlah.MyClass]
@="TryIt.Application"
[HKEY_CLASSES_ROOT\BlahBlah.MyClass\CLSID]
@="{7EF4A2CF-4C42-326C-8B0B-01C4A36D08C1}"
[HKEY_CLASSES_ROOT\CLSID\{7EF4A2CF-4C42-326C-8B0B-01C4A36D08C1}]
@="TryIt.Application"
[HKEY_CLASSES_ROOT\CLSID\{7EF4A2CF-4C42-326C-8B0B-01C4A36D08C1}\InprocServer32]
@="mscoree.dll"
"ThreadingModel"="Both"
"Class"="TryIt.Application"
"Assembly"="TryIt, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
[HKEY_CLASSES_ROOT\CLSID\{7EF4A2CF-4C42-326C-8B0B-01C4A36D08C1}\InprocServer32\1.0.0.0]
"Class"="TryIt.Application"
"Assembly"="TryIt, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
[HKEY_CLASSES_ROOT\CLSID\{7EF4A2CF-4C42-326C-8B0B-01C4A36D08C1}\ProgId]
@="BlahBlah.MyClass"
[HKEY_CLASSES_ROOT\CLSID\{7EF4A2CF-4C42-326C-8B0B-01C4A36D08C1}\Implemented Categories\{62C8FE65-4EBB-45E7-B440-6E39B2CDBF29}]
< /code>
Можно ли это вызвано применением C ++, которое не сможет найти dll? < /p>
Я заметил, что местоположение DLL не включено В записях реестра, но я поместил его в тот же каталог, что и приложение.>
Подробнее здесь: [url]https://stackoverflow.com/questions/79392406/replacing-a-c-dll-called-by-a-createdispatch-call-with-a-c-sharp-equivalent[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия