Показать сообщение отдельно
Старый 23.07.2015, 09:49   #6  
makbeth is offline
makbeth
Участник
Аватар для makbeth
КОРУС Консалтинг
 
43 / 52 (2) ++++
Регистрация: 15.05.2007
Адрес: Санкт-Петербург
Цитата:
Сообщение от Arahnid Посмотреть сообщение
Одна из функций на вход получает период накладных и должна вернуть списком номер и даты накладных за период.
Если есть "одна из функций", то почему бы не написать ее определение сюда?

Цитата:
Сообщение от Arahnid Посмотреть сообщение
X++:
    DLL dllOle = new DLL("dLLOLE.dll");//определяем название dll - она должна лежать в Bin клиента
    //1. если клиент стоит на клиентских машинах, то необходимо его туда копировать?
    //2. можно ли написать полный путь на сервер к библиотеке?
Если речь идет о классической Win DLL, то она должна лежать там, где её сможет найти и загрузить Windows при вызове WinAPI функции загрузки dll - в папке приложения (клиента или AOS), в папках Windows или в других доступных для системы папок (PATH). А клиент это или сервер - все зависит от того, где будет выполнятся код X++, загружающий dll.

Цитата:
Сообщение от Arahnid Посмотреть сообщение
X++:
...
    dllFunction.returns(ExtTypes::DWord);//3. Это типы возвращаемых значений?
...
    dllFunction.call('Value'); //5. Это передача значений переменных в функцию и результата запроса?
Метод call класса DLLFunction осуществляет вызов описанной функции DLL. В качестве параметров в этот метод надо передать параметры функции, "описанные" выше вызовом arg, при этом типы и порядок переданных параметров должны соответствовать тому, что было указано в arg, ну и параметрам функции, само собой. Метод возвратит одно единственное значение, то которое возвратит описанная функция, при этом тип этого значения будет тем, который указан с помощью метода returns, и он также должен соответствовать типу возвращаемого значения функции.

Цитата:
Сообщение от Arahnid Посмотреть сообщение
X++:
    //6. каким образом получить данные, если возвращается много строк? Например, номера накладных и их дат за период
    //7. каким образом получить две переменные, возвращаемые функцией?
В данном случае, вопросы к нам не совсем верные, т.к. все зависит от того, каким образом эти значения возвращает Ваша функция. А мы это сказать не сможем до тех пор, пока не увидим определение этой волшебной функции. В WinAPI обычно множество значений из функции получают при помощи указателя на структуру/массив/список и т.д., который передается в функцию одним из параметров. Как это реализовано у Вас - для нас загадка.