WinAPI в Clarion.NET

Clarion.NET & .NET технологии

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

WinAPI в Clarion.NET

Сообщение Andrew™ »

у меня Clarion.NET 2.0.2684

дока очень скудная, может есть что почитать на эту тему, интересует вопрос - как задействовать win api, аналог декларации dllimpot'а я нашёл, а как юзать дальше функции непонятно, т к в .NET нету простых переменных, все наследуются от object, а мне нужны что то типа char *
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Re: WinAPI в Clarion.NET

Сообщение Andrew™ »

потихоньку разбираюсь, вот как это выглядит:
  • USING('System.Runtime.InteropServices')
    MAP
    [DllImportAttribute('user32.dll',EntryPoint='MessageBoxA',)]
    MessageBox(UNSIGNED hWnd,STRING Text,STRING Caption,UNSIGNED Type),SIGNED,PROC
    [DllImportAttribute('c70run.dll',EntryPoint='_memcpy']
    RTL::memcpyLF(CLALONG,STRING,CLALONG),CLALONG,PROC,PASCAL
    [DllImportAttribute('c70run.dll',EntryPoint='Cla$NewMemZ']
    RTL::NewMem(CLALONG _Size),CLALONG
    [DllImportAttribute('c70run.dll',EntryPoint='_free')]
    RTL::FreeMem(CLALONG _Addr)

    END
вызов далее
MessageBox(0,'Text','Caption',0)
идёт на ура

а вот тот же memcpy - GPF, понятно что разные декларации функций, для первого PASCAL, для второй C, но эти атрибуты теперь недоступны в описании процедур, а вставить в
  • [DllImportAttribute( 'c70run.dll',EntryPoint='_memcpy',CallingConvention=CallingConvention.Cdecl)]
приводит к GPF на этапе компиляции ;(
Ответить