Ссылка на C # proc (встроенный в 32-битную среду) из Excel VBA в 64-битной среде - PullRequest
0 голосов
/ 21 апреля 2019

У меня есть программа Excel VBA (32-разрядная), которая вызывает процедуру, разработанную в C # (32-разрядная версия Visual Studio).Сейчас я переносю приложение в 64-битную среду.Я скопировал файлы, сгенерированные VS (32-битной) в каталоге Release (fiskDllLib.dll, fiskDllLib.pdb, FiskDllLib.tlb) на 64-битный компьютер и в 64-битной VBE, на которую я ссылался FiskDllLIb.tlb.Когда я выполняю код, показанный ниже, я получаю следующую ошибку: «Компонент ActiveX не может создать объект».Я хочу вызвать из моей программы VBA процедуру (copyModelsDirectory), которая определена в классе fileSys в FiskDllLib.

Я попытался запустить без ByVal спецификации в объявлении процедуры и без объявления PrtSafe и без какого-либо объявления с тем же результатом

#If VBA7 Then
    Declare PtrSafe Sub copyModelsDirectory Lib "FiskDLLlib" (ByVal fromDir As String, ByVal curModel As String, ByVal ftl As Boolean)
#End If

Sub aaaa()
    Dim fs As FiskDLLlib.fileSys

    Set fs = New FiskDLLlib.fileSys
End Sub

С этим сегментом кода я бы просто хотелназначить новый объект переменной fs.Нет вывода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...