Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
1 / 1 / 0
Регистрация: 26.03.2013
Сообщений: 20

Вызов dll на Delphi из C#

26.03.2013, 16:22. Показов 2825. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Я понимаю, что проблема старая, я много прочитал по этому поводу, но ничего не помогает.
Есть кусок программы на дельфях
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
type
  tdot=record
    Lat,Lon:single;  
  end;
  dots=array [0..399] of tdot;
  pdots=^dots;
 
 
procedure peleng(
 
  Lat,Lon:single;  
  Pel:single;        
  Dal:single;        
var
  N:integer;           
var
  PDots:pointer      
); {$IFDEF CDECL} cdecl; {$ELSE} stdcall; {$ENDIF} external 'pelell.dll';
Пробовал несколько вариантов на C#:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
[StructLayout(LayoutKind.Sequential, Pack=1)]
    public struct TDOT
    {
        public float x;
        public float y;
    }
public static extern void peleng(float x, floaty, float pel, float rast, ref int n, [Out] TDOT[] xx);
***
int u = 10;
            float x1 = 59;
            float y1 = 49;
            var xx = new TDOT[10];
                MapAccess.peleng(x1, y1, 30, 1000,ref u, xx);
или
C#
1
2
3
public static extern void peleng(float x, floaty, float pel, float rast, ref int n, ref TDOT[] xx);
***
                MapAccess.peleng(x1, y1, 30, 1000,ref u, ref xx);
В результате в лучшем случае получаю массив длины 1, с записанными исходными значениями
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.03.2013, 16:22
Ответы с готовыми решениями:

Вызов dll Delphi из C#
Почему выскакивает ошибка An unhandled exception of type 'System.StackOverflowException' если убрать один массив то все нормально но как...

Экспорт функций из dll на c++ и вызов из Delphi
Вызываю экспортируемую функцию из dll которая написана на c++. Вызываю из Delphi, с вызовом проблем нет но когда оно принимает мою строку...

Вызов функции из DLL, написанной на Delphi
Здрасте, У меня тут такая ситуация: Рыскал как то я, по просторам интернета, решение 1 проблемы, а именно: рисование своего GUI поверх...

4
169 / 132 / 29
Регистрация: 16.02.2013
Сообщений: 867
26.03.2013, 16:41
вот пример писал уже - Ошибка при подключении посторонней DLL
0
1 / 1 / 0
Регистрация: 26.03.2013
Сообщений: 20
26.03.2013, 16:49  [ТС]
Цитата Сообщение от Winhttp22 Посмотреть сообщение
Я видел, но где я могу использовать у себя IntPtr не понимаю
0
169 / 132 / 29
Регистрация: 16.02.2013
Сообщений: 867
26.03.2013, 18:31
IntPtr - это void* указатель.
вот тут -
Code
1
PDots:pointer
ты передаешь указатель на массив.
0
Kenes
20.07.2013, 18:50
Alf162 подскажи пожалуйста как ты в дельфи вызываешь процедуру peleng?

Delphi
1
2
3
4
5
6
7
8
9
10
procedure peleng(
 
  Lat,Lon:single;  
  Pel:single;        
  Dal:single;        
var
  N:integer;           
var
  PDots:pointer    
); {$IFDEF CDECL} cdecl; {$ELSE} stdcall; {$ENDIF} external 'pelell.dll';
интересует именно прпметр var PDots: pointer
Спасибо
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.07.2013, 18:50
Помогаю со студенческими работами здесь

Реализовать вызов dll, написанной на Delphi, в C++
Приветствую! Только недавно наал изучать dll и не очень понимаю почему вылезает ошибка в коде. Что нельзя выполнить библиотеку с1хх Вот...

Вызов функции из dll написанной на delphi из python
Импортировал ctypes, подключился к dll. Есть например такая функция: function GetStatusCardReader(var StatusCardReader: Word):...

Вызов функции из dll. Dll не определена в коде и подключается программно
Я написал простую функцию которая возвращает негатив bitmap'а Function Negative(ByVal Bmp As Bitmap) Dim Bmp2 As New...

Inject dll, а также вызов функции из этой же dll
Всем привет, заинжектить dll в другой процесс получилось, но еще необходимо вызвать функцию в этой длл, каким образом это реализовать? ...

Вызов функции DLL VB.NET в DLL C++
Как вызывать функции dll VB.NET через dll С++, которая приинжекчена к процессу проводника?


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru