Somesh Dhal Ответов: 1

Ошибка несоответствия типа VbSCript.


У меня есть c++ COM dll, к которой я пытаюсь получить доступ через vbscript. Объект создается просто отлично, но всегда показывает ошибку "несоответствие типа: имя функции"
КОД СКРИПТА VB-
d dim obj1
	set obj1=CreateObject("Begineers.first")
   Dim lngReturnValue 
   Dim a
   a=5
    Dim b
	b=7
    obj1.AddNumbers a, b, lngReturnValue

    Wscript.Echo( "The value of a+b is: " & lngReturnValue)

    Set obj1 = Nothing


Функции в библиотеке dll c++ -
STDMETHODIMP Cfirst::AddNumbers(LONG Num1, LONG Num2, LONG* ReturnVal)
{
    // TODO: Add your implementation code here
 *ReturnVal = Num1 + Num2;
    return S_OK;
}

Patrice T

В чем заключается ваш вопрос ?
В чем же проблема ? - Куда же ?

Somesh Dhal

когда я компилирую функцию, она сообщает об ошибке, показывающей "несоответствие типа в функции"

KarstenK

Ошибки-это правильно. Вы должны исправить свой вызов AddNumbers. Но я понятия не имею, как это сделать:

F-ES Sitecore

Если ваша функция возвращает значение, то она нуждается в круглых скобках вокруг параметров. Хотя не уверен, что это ваша проблема; obj1.AddNumbers (a, b, lngReturnValue). У вас также могут возникнуть проблемы с "by ref" lngReturnValue. Попробуйте более простой вызов метода с базовыми параметрами ввода\вывода, чтобы исключить, что он является чем-то специфичным для вашей сигнатуры метода.

1 Ответов

Рейтинг:
0

Member 11899075

Одна возможность...
ВБ (сценарий) может быть, жалуясь на тип long* для/код
Вы не показываете свой idl, поэтому я не вижу, как объявляется метод
Но, возможно, стоит использовать вариант для получения результата, например

[нет, код] вариант* код