dnia 2007-05-08 08:26, Pawe3 Kierski nastukal:
> Maciej Oszutowski w wiadomo?ci <fxw9cyuhzn31$.1ljsfjihpyrr2$.dlg@40tude.net> pisze:
>> Dnia Mon, 7 May 2007 23:09:06 +0200, Pawe3 Kierski napisa3(a):
>>
>>>> No w3a?nie nie bardzo. Nawet bezargumentowa funckja wymaga podania
>>>> extern __stdcall.
>>> Wymaga? Co sie dzieje, jak nie podasz? Nie chce mi sie teraz pisaa
>>> stosownych przyk3adów, ?eby sprawdzaa...
>> Je?eli nie podasz jawnie ?e to stdcall to kompilator bedzie szuka3
>> domy?lnie funkcji cdecl, czyli wygl?daj?cej jako? tak: _CpuInfo@4.
>> Spowodowane jest to tym, ?e kompilator musi wiedziea ile parametrów
>> przyjmuje funkcja po to, aby poprawnie wyregulowaa stos po jej wywo3aniu.
>> Przy stdcall nie jest to potrzebne bo funkcja sama to robi...
>>
>
> Plik .def do dll rozwi?za3by sprawe - wtedy nazwa funkcji jest
> dok3adnie taka, jak zapiszemy w .def. Inna sprawa, ?e wtedy dla
> funkcji cdecl z parametrami trzeba ju? samodzielnie zadbaa o poprawne
> wywo3anie (deklaracje).
> Umkn?3 mi ten problem, bo zazwyczaj u?ywa3em szablonów klasy
> "owijaj?cej" 3adownanie .dll i wywo3anie funkcji, a .dll zawsze
> robi3em z def i samodzielnie dba3em o zgodno?a konwencji w typie
> funkcji.
Mam *.def. Ale rozumiem, ?e sugerujesz ?eby w nim zapisaa prototyp
funkcji <; ?
--
Pozdrawiam,
GregM