Замена DLL C ++, вызванную вызовом CantureIspatch с помощью эквивалента C#C#

Место общения программистов C#
Ответить
Anonymous
 Замена DLL C ++, вызванную вызовом CantureIspatch с помощью эквивалента C#

Сообщение Anonymous »

Я пытаюсь сделать что -то похожее на это: замена VB6 DLL, вызванный вызовом CreatedIspatch на эквивалент C# < /p>
Оба проекта - x86. < /p>
Я получаю эту ошибку, когда пытаюсь запустить приложение C ++: ошибка -2147221164: класс не зарегистрирован < /p>
Вот код приложения (C ++): < /p>
CoInitializeEx(NULL, NULL);
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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»