Взаимодействие с другими языками
Программирование АССЕМБЛЕРОМ в Delphi
Автор: Александр Баранецкий
Каждый день множество программистов (кроме опытных) в Delphi, используя код высокого уровня, пишут свои программы. Как правило, пренебрегая таким понятием как Assembler, имеется ввиду в строенный в DELPHI. Конечно, тяжело сказать, что на голом «асе» можно сотворить великолепный шедевр имеется ввиду красота - VCL (Visual Component Library). Особенно относительно начинающих программистов, которые только начинают учить IDE. Но зато можно повысить скорость какого нибудь математического или системного алгоритма.
Сегодня я представляю на ваш суд статью по «асу». Скорее всего, она будет интересна начинающим программерам. Я не мастер, но сеже.
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: Взаимодействие с другими языками
Я создал следующие две функции, существенно повышающие производительность в приложениях, активно работающих с данными. Вам нужно всего лишь обеспечить контроль типов и границ допустимого диапазона, все остальное они сделают с любым типом данных лучше нас :-) .
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: Взаимодействие с другими языками
Как присвоить значение полям записи с помощью Assemblera
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: Взаимодействие с другими языками
Вызов cи-шной функции с переменным числом параметров
Автор: Владимир Переплетчик
Комментарий к статье по поводу wsprintf
Сама по себе статья вызывает мало интереса, кроме того, что поднята интересная проблема - вызов с-шной функции с переменным числом параметров. В ответах с использованием массивов вообще, IMHO, ошибка - на стек попадет адрес массива, а в с это совсем не то. Но решение проблемы существует, правда надо ручками повозиться со стеком. Приводимая ниже функция на скорую руку переделывается из работающей в реальном проекте похожего буфера с-паскаль, но там функция в dll имеет тип вызова cdecl и другие обязательные параметры, в связи с чем возможны "опечатки"
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: Взаимодействие с другими языками
Основное отличие EXE-файлов созданных Delphi и Visual Basic
Существует два важных различия между файлами EXE, созданными в Delphi, и файлами EXE, созданными VB. Delphi создает чисто машинный код, непосредственно исполняемый компьютером, в то время как VB транслирует исходный код в промежуточную форму (р-код). Файл EXE, сгенерированный VB, в действительности является программой-интерпретатором р-кода с добавленным в конце р-кодом программы пользователя.
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: Взаимодействие с другими языками
Во-первых, Вам необходимо объявить все экспортируемые в Delphi DLL функции с ключевыми словами export; stdcall;
Во-вторых, файл заголовка VC++ должен объявить все функции как тип __declspec(dllexport) __stdcall (применяйте двойное подчеркивание в секции объявления прототипа функции extern "C" { ... }. (вместо этого можно также использовать __declspec(dllimport)...). Для примера:
Code: |
extern "C" { int __declspec(dllexport) __stdcall plusone(int); } |
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: Взаимодействие с другими языками
C Data Type | Object Pascal | Description
----------------------------------------------
LPSTR PAnsiChar; String >pointer
LPCSTR PAnsiChar; String >pointer
DWORD Integer; Whole numbers
BOOL LongBool; Boolean values
PBOOL ^BOOL; Pointer to a Boolean value
Pbyte ^Byte; Pointer to a byte value
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: Взаимодействие с другими языками
Основное предназначение этой статьи, заполнить пробелы в оригинальной документации по Borland Delphi Developer, при этом весь программный код, а так же теория, полность совместимы со всеми версиями Delphi.
Использование Ассемблера в Борландовком Delphi
Перед тем, как начать, хотелось бы определиться с уровнем знаний, необходимых для нормального усвоения данного материала. Необходимо быть знакомым со встроенными средствами отладки в Delphi. Так же необходимо иметь представление о таких терминах как тип реализации (instantiation), null pointer и распределение памяти. Если в чём-то из вышеупомянутого Вы сомневаетесь, то постарайтесь быть очень внимательны и осторожны при воплощении данного материала на практике. Кроме того, будет обсуждаться только 32-битный код, так что понадобится компилятор не ниже Delphi 2.0.
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: Взаимодействие с другими языками
Что Delphi знает об ассемблере
Автор: Павел
Сегодня мы рассмотрим вопрос применения ассемблера в программах, написанных на Delphi.
Итак, что же Delphi "знает" об ассемблере?
Команды процесора
Ура, начиная с шестой версии, в популярном продукте Borland реализована поддержка всех команд процессора, включая команды расширений MMX, SSE, 3DNow! Теперь нет необходимости вместо простой команды rdtsc писать dw 310Fh .
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: Взаимодействие с другими языками
Arrays can be passed as variants:
VB module code:
Code: |
Attribute VB_Name = "Module1" Declare Function TestMin Lib "c:\windows\system\NoelSArr" (Nums As Variant) As Integer |
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: Взаимодействие с другими языками
Code: |
Application.ProcessMessages |
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: Взаимодействие с другими языками
Страница 1 из 2