<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    Díky, to je zajímavá stopa. Když jsem místo toho použil:<br>
    <font face="Courier New, Courier, monospace">#define PXCAPI extern
      "C"</font><br>
    nebo<br>
    <font face="Courier New, Courier, monospace">#define PXCAPI extern
      "C" __declspec(dllimport)</font><br>
    <br>
    Proběhne debug build bez problémů.<br>
    <br>
    Zajímavé je, že ale v obou případech release skončí errorama typu:<br>
    Severity    Code    Description    Project    File    Line   
    Suppression State<br>
    Error    LNK2001    unresolved external symbol
    __imp_pxcInitialize    prjTest4   
    C:\Users\hudecekp\Documents\Visual Studio
    2017\Projects\sdk-test\prjTest4\prjTest4.obj    1    <br>
    <br>
    (Původní verze v qt funguje vždy a oběma způsoby)<br>
    <br>
    Takže v nastavení projektu VS se musí nějak říct, že má umět
    __attribute__<br>
    <br>
    PH<br>
    <br>
    <div class="moz-cite-prefix">Dne 15.02.2022 v 17:45 Miroslav Šinko
      napsal(a):<br>
    </div>
    <blockquote type="cite"
cite="mid:CAAo4E4j=C6oe5byh0XQdp5G=_T=ETJLRiJZDNA8d8UU00FgWLw@mail.gmail.com">
      <pre class="moz-quote-pre" wrap="">MSVC2017, ani cmake nepouzivam, no __attribute__ mi pripada, ze je zo
sveta GCC a nie MSVC.

Ten prvy error hovori, ze vam chyba typ (navratovy) pre funkciu:
PXCAPI int pxcInitialize(int argc = 0, char const* argv[] = NULL);
Ono ho tam mate, ale po rozvoji PXCAPI:
extern "C" __attribute__ ((visibility("default"))) int
pxcInitialize(int argc = 0, char const* argv[] = NULL);
kompilatoru podla mna nejde do hlavy __attribute__

miro

ut 15. 2. 2022 o 17:35 Pavel Hudeček <a class="moz-txt-link-rfc2396E" href="mailto:edizon@seznam.cz"><edizon@seznam.cz></a> napísal(a):

</pre>
      <blockquote type="cite">
        <pre class="moz-quote-pre" wrap="">
No on ten #if pro win32 bude artefakt z dávné doby, teď se to buildí jen v 64b a mnou používané DLL je 64b, takže momentálně nemá smysl se zabývat tím co vzniklo, když jsem omylem buildil 32b.

A důležité je, že stejné fajly C, H, DLL a LIB fungují při použití Cmake a též fungují při použití v QT, jen s přidáním LIB do projektu a tam fungují při všech metodách překladu, tedy cmake/VS, qmake/VS i mingw. Tzn. všechny 4 fajly jsou v pořádku, jen není správně nastaven projekt ve VS.

Teď teda co je za problém ve VS při při 64b, s funkcemi deklarovanými:
#define PXCAPI extern "C" __attribute__ ((visibility("default")))
PXCAPI int pxcInitialize(int argc = 0, char const* argv[] = NULL);

error:
Severity    Code    Description    Project    File    Line    Suppression State
Error (active)    E0260    explicit type is missing ('int' assumed)    prjTest4    C:\Users\hudecekp\Documents\Visual Studio 2017\Projects\sdk-test\prjTest4\pxcapi.h    140
ukazující na začátek řádku, tedy před PXCAPI
a další error:
Severity    Code    Description    Project    File    Line    Suppression State
Error (active)    E0065    expected a ';'    prjTest4    C:\Users\hudecekp\Documents\Visual Studio 2017\Projects\sdk-test\prjTest4\pxcapi.h    140
ukazující před int.
</pre>
      </blockquote>
    </blockquote>
  </body>
</html>