У меня есть программа 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
.Нет вывода.