Re: Problémy s DLL a LIB ve VS2017 - vyřešeno
Jindroush
jindroush na seznam.cz
Středa Únor 16 12:46:04 CET 2022
Tam nejsou zavislosti na jinych headerech, a nejsou tam precompiled
headers? Ja bych predpokladal, ze aspon jedno z toho tam bude, proto je
treba dat to 'co nejdriv', tj. idealne jako prepinac kompilatoru (-D),
coz zaridi IDE, kdyz to tam vpisete.
J.
On 16.02.2022 12:08, Pavel Hudeček wrote:
> 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
>>
>>
>
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
--
Jindroush <jindroush na seznam.cz>
Další informace o konferenci Hw-list