Взаимодействие с другими языками
Основное предназначение этой статьи, заполнить пробелы в оригинальной документации по Borland Delphi Developer, при этом весь программный код, а так же теория, полность совместимы со всеми версиями Delphi.
Использование Ассемблера в Борландовком Delphi
Перед тем, как начать, хотелось бы определиться с уровнем знаний, необходимых для нормального усвоения данного материала. Необходимо быть знакомым со встроенными средствами отладки в Delphi. Так же необходимо иметь представление о таких терминах как тип реализации (instantiation), null pointer и распределение памяти. Если в чём-то из вышеупомянутого Вы сомневаетесь, то постарайтесь быть очень внимательны и осторожны при воплощении данного материала на практике. Кроме того, будет обсуждаться только 32-битный код, так что понадобится компилятор не ниже Delphi 2.0.
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: Взаимодействие с другими языками
Вызов cи-шной функции с переменным числом параметров
Автор: Владимир Переплетчик
Комментарий к статье по поводу wsprintf
Сама по себе статья вызывает мало интереса, кроме того, что поднята интересная проблема - вызов с-шной функции с переменным числом параметров. В ответах с использованием массивов вообще, IMHO, ошибка - на стек попадет адрес массива, а в с это совсем не то. Но решение проблемы существует, правда надо ручками повозиться со стеком. Приводимая ниже функция на скорую руку переделывается из работающей в реальном проекте похожего буфера с-паскаль, но там функция в dll имеет тип вызова cdecl и другие обязательные параметры, в связи с чем возможны "опечатки"
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: Взаимодействие с другими языками
The following example demonstrates procedures that provide the capibility of sending keystrokes to any window control capable of receiving keyboard input. You may use this technique to toggle the num lock, caps lock, and scroll lock keys under Windows NT. This same technique works for toggling caps lock and scroll lock keys under Windows 95, but it will not work for num lock.
Note that there are four procedures provided: SimulateKeyDown(), SimulateKeyUp(), SimulateKeystroke(), and SendKeys(), to allow greater control in your ability to send keystrokes.
The SimulateKeyDown(), SimulateKeyUp(), and SimulateKeystroke() procedures expect a virtural key code (like VK_F1). The SimulateKeystroke() procedure accepts an extra parameter that is useful when simulating the PrintScreen key. When extra is set to zero, the entire screen will be captured to the windows clipboard. When extra is set to one, only the active window will be captured.
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: Взаимодействие с другими языками
Во-первых, Вам необходимо объявить все экспортируемые в Delphi DLL функции с ключевыми словами export; stdcall;
Во-вторых, файл заголовка VC++ должен объявить все функции как тип __declspec(dllexport) __stdcall (применяйте двойное подчеркивание в секции объявления прототипа функции extern "C" { ... }. (вместо этого можно также использовать __declspec(dllimport)...). Для примера:
Code: |
extern "C" { int __declspec(dllexport) __stdcall plusone(int); } |
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: Взаимодействие с другими языками
Code: |
Application.ProcessMessages |
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: Взаимодействие с другими языками
Я создал следующие две функции, существенно повышающие производительность в приложениях, активно работающих с данными. Вам нужно всего лишь обеспечить контроль типов и границ допустимого диапазона, все остальное они сделают с любым типом данных лучше нас :-) .
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: Взаимодействие с другими языками
Основное отличие EXE-файлов созданных Delphi и Visual Basic
Существует два важных различия между файлами EXE, созданными в Delphi, и файлами EXE, созданными VB. Delphi создает чисто машинный код, непосредственно исполняемый компьютером, в то время как VB транслирует исходный код в промежуточную форму (р-код). Файл EXE, сгенерированный VB, в действительности является программой-интерпретатором р-кода с добавленным в конце р-кодом программы пользователя.
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: Взаимодействие с другими языками
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
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: Взаимодействие с другими языками
Как присвоить значение полям записи с помощью Assemblera
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: Взаимодействие с другими языками
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 |
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: Взаимодействие с другими языками
Программирование АССЕМБЛЕРОМ в Delphi
Автор: Александр Баранецкий
Каждый день множество программистов (кроме опытных) в Delphi, используя код высокого уровня, пишут свои программы. Как правило, пренебрегая таким понятием как Assembler, имеется ввиду в строенный в DELPHI. Конечно, тяжело сказать, что на голом «асе» можно сотворить великолепный шедевр имеется ввиду красота - VCL (Visual Component Library). Особенно относительно начинающих программистов, которые только начинают учить IDE. Но зато можно повысить скорость какого нибудь математического или системного алгоритма.
Сегодня я представляю на ваш суд статью по «асу». Скорее всего, она будет интересна начинающим программерам. Я не мастер, но сеже.
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: Взаимодействие с другими языками
Страница 1 из 2