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

Pavel Hudeček edizon na seznam.cz
Středa Únor 16 11:49:50 CET 2022


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



Další informace o konferenci Hw-list