Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.20;
Скачать: CL | DM;

Вниз

Совместимость DLL для delphi и С++   Найти похожие ветки 

 
Ega23 ©   (2005-02-08 11:47) [0]


library MyDLL;

uses
.....

function AAA(Param1:Cardinal=0):Cardinal; StdCall;
....

exports

AAA    name    "AAA";


Под C++ значение по-умолчанию пройдёт?


 
Digitman ©   (2005-02-08 12:15) [1]


> Под C++ значение по-умолчанию пройдёт?


как же оно "пройдет", если генерация кода для случаев с дифолт-параметрами - прерогатива конкретного компилятора ?


 
Ega23 ©   (2005-02-08 12:18) [2]

Т.е. так нельзя, надо в явном виде параметр указывать...
Понял.


 
MBo ©   (2005-02-08 12:21) [3]

Сишные DLL с параметрами по умолчанию используются в Дельфи нормально.


 
Digitman ©   (2005-02-08 12:22) [4]


> Понял


радует.


 
Ega23 ©   (2005-02-08 12:39) [5]

Сишные DLL с параметрами по умолчанию используются в Дельфи нормально.

Тут как раз обратная ситуация. На 95% DLL будет под Делфи использоваться, но вероятность использования её под С++ всё-таки есть...


 
Eraser ©   (2005-02-08 12:42) [6]

Не забудь поставить директиву cdecl.


 
Игорь Шевченко ©   (2005-02-08 12:43) [7]

Параметры по умолчанию нужны только во время компиляции, чтобы компилятор при вызове фукнции мог подставить корректные аргументы. И все.


 
Ega23 ©   (2005-02-08 12:51) [8]

Не забудь поставить директиву cdecl.

В рамках нашей команды StrdCall принят за правило.


 
MBo ©   (2005-02-08 12:52) [9]

>Тут как раз обратная ситуация.
Если существует стандарт на передачу параметров по умолчанию, то это неважно. К сожалению, о таком соглашении я не знаю.

Однако, например, такая функция из DLL с прототипом из .h-файла:


PXL_API
PimMegaStartPreview(IN HANDLE hImager,      // Imager object handle
   IN LPSTR title="PL1394 Camera Preview",  //window title
   IN U32 style=WS_OVERLAPPEDWINDOW|WS_VISIBLE,//style
   IN U32 x=0,         //left
   IN U32 y=0,         //top
   IN U32 width=-1,       //width
   IN U32 height=-1,       //height
   IN HWND parent=NULL,      //handle to parent window
   IN U32 nId=0,        //child window id
   IN int PreviewDataThreadPriority=
    THREAD_PRIORITY_BELOW_NORMAL,   //preview window"s data thread priority
   IN int PreviewDrawThreadPriority=
    THREAD_PRIORITY_BELOW_NORMAL);   //preview window"s draw thread priority

работает в таком виде:

function PimMegaStartPreview(hImager: THandle;
 strTitle: PChar = nil;
 Style: Integer = WS_OVERLAPPEDWINDOW or WS_VISIBLE;
 lLeft: Integer = 0;
 lTop: Integer = 0;
 lWidth: Integer = -1;
 lHeight: Integer = -1;
 lParent: Integer = 0;
 lChildId: Integer = 0;
 lPreviewDataThreadPriority: Integer = THREAD_PRIORITY_BELOW_NORMAL;
 lPreviewDrawThreadPriority: Integer = THREAD_PRIORITY_BELOW_NORMAL
 ): PXL_RETURN_CODE; stdcall;


 
Ega23 ©   (2005-02-08 12:57) [10]

Если существует стандарт на передачу параметров по умолчанию, то это неважно. К сожалению, о таком соглашении я не знаю.

Очепятка.  StdCall


 
Digitman ©   (2005-02-08 13:03) [11]


> Ega23


см.
> MBo ©   (08.02.05 12:52) [9]


и ничего удивительного здесь нет.

любой компилятор в общем случае генерирует код, в рез-те исполнения которого передаются ВСЕ без исключения факт.параметры .. др.вопрос что если некий параметр имеет зн-е по дифолту и в вызове опущен, то компилятор, ИМЕЯ ПРОТОТИП, сгенерирует код, передающий этот параметр со значением, указанным по дифолту



Страницы: 1 вся ветка

Текущий архив: 2005.02.20;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.05 c
3-1106645184
DimonNew
2005-01-25 12:26
2005.02.20
Проверить - существует ли параметр в ADOCommand


14-1106747384
KSergey
2005-01-26 16:49
2005.02.20
О профессионализме программиста


1-1107331582
MakedoneZ
2005-02-02 11:06
2005.02.20
Почему неоткрывается frmGraph?


14-1106885953
X9
2005-01-28 07:19
2005.02.20
Вопрос радиоэлектронщикам - ремонт "Кометы 225-1 Стерео"


6-1102582950
Майкл
2004-12-09 12:02
2005.02.20
Помогите, пожалуйста, с программой.