Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
2 / 2 / 4
Регистрация: 15.03.2013
Сообщений: 101

Вызвать метод из библиотек на С++

02.09.2014, 18:12. Показов 1380. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Метод в торговом терминале Sterling
C++
1
GetOrderList(VARIANT_BOOL bOpenOnly, SAFEARRAY(structSTIOrderUpdate) *arrayOrder, long *lCount);
Такая структура у него в Visual Studio
C#
1
int GetOrderList([In] bool bOpenOnly, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_EMPTY), In, Out] ref Array arrayOrder);
Пытаюсь вызвать его у себя в приложении, но никак не могу понять что мне надо сделать чтоб все работало верно.
Код:
C#
1
2
3
4
                Array arrList;
                structSTIOrderUpdate fsd = stiOrderMaint.GetOrderInfo("");
                arrList = new Array[10];
                var d = stiOrderMaint.GetOrderList(false, ref arrList);
Выдает ошибку тип массива не соответствует ожидаемому, попробовал по другому
C#
1
2
3
4
                var arrList;
                structSTIOrderUpdate fsd = stiOrderMaint.GetOrderInfo("");
                arrList = structSTIOrderUpdate[];
                var d = stiOrderMaint.GetOrderList(false, ref arrList);
Здесь он сразу ругается на structSTIOrderUpdate[];
Помогите разобраться, как мне вызвать данный метод. Спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.09.2014, 18:12
Ответы с готовыми решениями:

Правильно вызвать API функцию из библиотек на C
Добрый день! Скажите пожалуйста, я вызываю ряд функций API из библиотек на C. public static extern bool...

Как вызвать метод info в метод Main и с какими параметрами?
я новичок в C#, так что не судите строго.. Я не думаю что это кому-то покажется сложным, но у меня вызывает дикий ступор(( using...

Как вызвать определенный метод переданного класса через метод другого класса?
Добрый день. Захотел я вызвать в методе класса метод некоего другого класса, о котором я пока не знаю. Мне пришла в голову...

3
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
03.09.2014, 06:33
Dernovyua, а если так, то что выдает?
C#
1
2
structSTIOrderUpdate[] arrList = new structSTIOrderUpdate[10];
int d = stiOrderMaint.GetOrderList(false, ref arrList);
1
2 / 2 / 4
Регистрация: 15.03.2013
Сообщений: 101
03.09.2014, 08:29  [ТС]
Попробовал, что вы посоветовал. Но в данном случае "ref arrList" выдает ошибку следующего содержания: The "ref" argument type doesn't match parameter type. При попытке билда ошибки следующие:
1. Argument 2: cannot convert from 'ref SterlingLib.structSTIOrderUpdate[]' to 'ref System.Array'
2. The best overloaded method match for 'SterlingLib.ISTIOrderMaint.GetOrderList (bool, ref System.Array)' has some invalid arguments
0
873 / 771 / 173
Регистрация: 11.01.2012
Сообщений: 1,942
03.09.2014, 22:00
Цитата Сообщение от Dernovyua Посмотреть сообщение
1
C++
1
GetOrderList(VARIANT_BOOL bOpenOnly, SAFEARRAY(structSTIOrderUpdate) *arrayOrder, long *lCount);
почему там два параметра ?
Цитата Сообщение от Dernovyua Посмотреть сообщение
Такая структура у него в Visual Studio
C#
1
int GetOrderList([In] bool bOpenOnly, [MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_EMPTY), In, Out] ref Array arrayOrder);
Отправляете в функцию неинициализированный массив , значит необходим параметр out, а не ref.

Для SAFEARRAY можно использовать object []
C#
1
2
object [] arrList;
var d = stiOrderMaint.GetOrderList(false, out arrList);
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.09.2014, 22:00
Помогаю со студенческими работами здесь

Как вызвать метод Hello
Как вызвать void Hello????

Вызвать метод n-раз
Необходимо вызвать метод n-раз. Как это реализовать? static void Func() { Console.Write("x= "); ...

Нужно вызвать через сторонний метод(в другом классе,который в другом файле) метод в форме
public void Print_Inform(int numb1,int znak,int numb2) { switch(znak) { case 1: label2.Text = "+"; break; case...

Вызвать метод button_click
то есть, вот это private void button1_Click(object sender, EventArgs e) private void Nev() { ...

Метод main и как им вызвать другой метод
Доброго всем времени суток. У меня возникла проблема. Вобщем дело такое. У меня есть тестовый класс Test, в котором существует 4 метода:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru