У меня есть функция DLL, которая имеет два строковых параметра и два параметра int. Функция возвращает строку. Когда я вызываю функцию непосредственно из excel, это нормально, но когда я вызываю функцию из VBA, в DLL-функцию передается строковые параметры, то есть не соответствует с оригинальными (бессмысленными символами). И функция возвратная строка, ведьма есть каждые секунды char "".Excel VBA - строка param pass от excel, но не от VBA
Моя функция длл выглядит следующим образом:
BSTR __stdcall getPattern(int sex, int pad, BSTR * a, BSTR * b){
...
}
функцию Declare в VBA:
Declare Function GetPattern _
Lib "myPathToFunction" Alias "GetPattern" (ByVal poh As Integer, ByVal pad As Integer, ByRef a As String, ByRef b As String) As String
В первенствует я вызываю функцию, как это: (И это нормально)
=GetPattern(I5;C1;A1;B1)
И от функции вызова VBA, как это: (и он возвращает только первый символ строки)
result = GetPattern(Range("I5").Value, Range("C1").Value, Cells(i, 1).Value, Cells(i, 2).Value)
Получите тот же результат. –
Является ли возвращаемая строка unicode случайно? – Comintern