Re: Problémy s DLL a LIB ve VS2017 - vyřešeno

Miroslav Šinko sinkomiro na gmail.com
Středa Únor 16 14:50:03 CET 2022


A to WIN64 mate v nastaveniach Preprocesora?
Ak ano, bezpecnejsie bude v headri k DLL podmienku zmenit:
#if defined WIN32 || defined WIN64
  #define PXCAPI extern "C" __declspec(dllexport)
#else
   #define PXCAPI extern "C" __attribute__ ((visibility("default")))
#endif
GNU kompilator  pojde vetvou #else

Po zmene v headri treba dat Rebuild projektu, nie iba Build.

miro

st 16. 2. 2022 o 14:39 Pavel Hudeček <edizon na seznam.cz> napísal(a):

>
> No mě by taky zajímalo, co to dělá. Rozhodně když přepnu platformu na
> Win32, tak to nepřeloží a třeba QT to takhle sice jednou metodou
> přeložilo, ale výsledek nefungoval. Předpokládám, že to by zas mohlo
> fungovat, kdyby se použila DLL+LIB přeložená pro 32. Ale na to už není čas.
>
> PH
>
> Dne 16.02.2022 v 14:30 Miroslav Šinko napsal(a):
> > Teraz som trocha strateny. Pisali ste, ze kompilujete 64-bitovu verziu
> > programu. T.j. VS by malo automaticky pridat do Preprocessor
> > Definitions WIN64. Mate to tam?
> > Do toho vy pridate WIN32. Tymto sa ale neriadi len header k DLL, ale
> > aj headre kompilatora (zjednodusene povedane). Pokladal by som za
> > krajne nebezpecne definovat WIN32 pre 64-bit aplikaciu.
> >
> > miro
> >
> > st 16. 2. 2022 o 11:50 Pavel Hudeček <edizon na seznam.cz> napísal(a):
> > Takže vyřešeno:
> > v nastavení projektu je potřeba nejen u všech konfigurací přidat LIB,
> > ale navíc v C/C++ / Preprocesor přidat u všech konfigurací na začátek WIN32;
> > Zajímavé je, kde se to projevuje jinde, než jen u toho přepínání v tom
> > H, protože po tom začnou zázračně fungovat všechny dříve vyzkoušené
> > varianty #define PXCAPI, kromě toho attribute.
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list


Další informace o konferenci Hw-list