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

Pavel Hudeček edizon na seznam.cz
Středa Únor 16 12:08:43 CET 2022


No to jsem viděl celou dobu, ale ani když se před ten
#ifndef WIN32
přidá
#define WIN32
nezačne to fungovat, přičemž v C ani H není žádný jiný výskyt stringu WIN32.

Teprve když se to přidá do projektu, všechno funguje.

PH

Dne 16.02.2022 v 11:54 Jindroush napsal(a):
> No a kdybyste udelal to, co jsem radil (vcera, 17:45), tj. nechal si 
> vypsat 'mezikrok' preprocesoru, videl byste hned na vlastni oko, ze se 
> vam ta makra neprekladaji tak, jak ocekavate.
> J.
>
> On 16.02.2022 11:49, Pavel Hudeček wrote:
>> 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.
>>
>> PH
>>
>> Dne 16.02.2022 v 8:56 Pavel Hudeček napsal(a):
>>> No on je to poměrně rozsáhlý, multiplatformní projekt. Jednou za čas 
>>> se to celé buildí nějakou sadou skriptů a QT, pro win64, linux a 
>>> mac. A jednou z mnoha částí je i SDK pro C a to obsahuje zmíněné H, 
>>> DLL a LIB, potom ještě několik dalších podobných trojic. To si 
>>> samozřejmě buildí zákazníci na svých softwarech a MSVS různých verzí 
>>> mezi nimi tvoří významnou skupinu.
>>>
>>> PH
>>>
>>> Dne 16.02.2022 v 0:22 Miroslav Šinko napsal(a):
>>>> Tak pardon, mal som mylnu predstavu, ze je to libka z internetov..
>>>>
>>>> Import lib nemusi byt kompatibilna medzi roznymi verziami MSVC. Ak 
>>>> mate zdrojaky, tak si ju zbuildujte v Studiu, v ktorom buildujete 
>>>> aj aplikaciu. Ak mate od nej projekt, tak si ho otvorte vo vasom 
>>>> studiu, ponukne vam konverziu na vyssiu verziu.
>>>>
>>>> Podla mna bojujete s veternymi mlynmi. To co mate hotove, je 
>>>> pouzitelne v MSVS pre 32bit. Ale 64bit bola vytvorena pre GNU a to 
>>>> do MSVS "nenatiahnete".
>>>>
>>>> Ina moznost je kuknut dependency walkerom na hotovu DLL, ake 
>>>> funkcie ma exportovane (a v akej konvencii) a v zdrojakoch vasej 
>>>> aplikacie pouzit "sehr dynamisch" pristup. t.j. LoadLibrary a 
>>>> GetProcAddress. Teda sa vykaslat na staticke linkovanie dynamickej 
>>>> kniznice do projektu.
>>>>
>>>> miro
>>>>
>>>>
>>>> On 15.2.2022 23:39, Pavel Hudeček wrote:
>>>>> Knihovna rozhodně není open source, ale zbuildovat si ji můžu:-)
>>>>>
>>>>> A kromě zdrojáků po jejím autorovi zbyl i projektový fajl od MSVC a s
>>>>> ním se normálně dá používat. Ale přes veškerou snahu se nepodařilo
>>>>> přijít na to, jak vytvořit nový projekt tak, aby fungoval stejně. Je
>>>>> vytvořený v nějaké starší verzi, takže ani s porovnáním fajlů jsem
>>>>> neuspěl. Liší se prostě moc.
>>>>>
>>>>> A mě by se docela líbilo, kdybych věděl v čem je problém a taky 
>>>>> kdybych
>>>>> mohl zákazníkům do manuálu napsat, jak nastavit projekt v 
>>>>> nearchaickém
>>>>> MSVS.
>>>>>
>>>>> PH
>>>>>
>>>>> Dne 15.02.2022 v 22:48 Miroslav Šinko napsal(a):
>>>>>> Som dinosaurus, VS2017 nepoznam (zaspal som na 2013), ale nejak
>>>>>> nepredpokladam, ze sa da "naucit" na rozponavanie _attribute_. Takze
>>>>>> by som vychadzal z toho, co som videl. Teda mate dll prichystanu na
>>>>>> Win32 cez MSVC(dllexport) a Win64 cez GNU(_attribute_). Podla mna je
>>>>>> dost mozne, ze 64bit verziu, co mate, ani pod MSVC nepojde 
>>>>>> zlinkovat.
>>>>>> Ak som spravne pochopil, kniznica je open source, tak si ju 
>>>>>> zbuildujte
>>>>>> v MSVC s tym dllexport aj ako 64bit a potom ju pouzite s 
>>>>>> dllimport vo
>>>>>> vasej aplikacii.
>>>>>>
>>>>>> miro
>>>>>>
>>>>>> On 15.2.2022 21:59, Pavel Hudeček wrote:
>>>>>>> Ano, jako ve všech ostatních případech. Ale tady to nějak nestačí.
>>>>>>>
>>>>>>> PH
>>>>>>>
>>>>>>> Dne 15.02.2022 v 21:08 Miroslav Šinko napsal(a):
>>>>>>>> V nastaveniach projektu ste pridali do linker settings pxcapi.lib?
>>> _______________________________________________
>>> HW-list mailing list  -  sponsored by www.HW.cz
>>> Hw-list na list.hw.cz
>>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>> _______________________________________________
>> 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