<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    No všechny soubory, tedy zdroják pokusného programu, H, DLL a LIB
    jsou v obou případech stejné, ale s cmake (který používá VS) to
    funguje, kdežto z přímo ve VS ne.<br>
    <br>
    A ten cmake se pouští z bat:<br>
    <b><font color="#800000">mkdir build<br>
        cd build<br>
        cmake -DCMAKE_GENERATOR_PLATFORM=x64 .. <br>
        msbuild /P:Configuration=Release ALL_BUILD.vcxproj</font></b><br>
    (a pak copy exe a DLL na místo kde se to spouští)<br>
    <br>
    Jo a pak jsem v tom VS zapnul x64, prvně jsem si nevšim že je zaplý
    x86.<br>
    <br>
    Výsledkem jsou jiný errory:<br>
    Severity    Code    Description    Project    File    Line   
    Suppression State<br>
    Error (active)    E0260    explicit type is missing ('int' assumed)<br>
    A ty errory se odkazujou na všechny začátky deklarací funkcí v
    pxcapi.h<br>
    <br>
    Všechny jsou tohoto typu:<br>
    <font face="Courier New, Courier, monospace">PXCAPI int
      pxcRefreshDevices();</font><br>
    a liší se až názvy a parametry<br>
    přičemž nahoře je:<br>
    <font face="Courier New, Courier, monospace">#ifndef WIN32<br>
          #define PXCAPI extern "C" __attribute__
      ((visibility("default")))<br>
      #else<br>
          #define PXCAPI extern "C" __declspec(dllexport)<br>
      #endif</font><br>
    <br>
    PH<br>
    <br>
    <div class="moz-cite-prefix">Dne 15.02.2022 v 16:03 Jindroush
      napsal(a):<br>
    </div>
    <blockquote type="cite"
      cite="mid:418c7346-3e7d-b1e4-65aa-a6d6c2ec062d@seznam.cz">No a ten
      unresolved symbol v pxcore.lib urcite je, tj. presne ve stejnem
      tvaru, na ktery si linker stezuje?
      <br>
      J.
      <br>
      <br>
      On 15.02.2022 15:53, Pavel Hudeček wrote:
      <br>
      <blockquote type="cite">Dobrý den všem,
        <br>
        mám konzolový program v C, který využívá DLL a LIB. Pro začátek
        by mi stačilo, kdyby to fungovalo v triviální verzi, kdy je DLL
        a LIB u zdrojáků.
        <br>
        <br>
        Pokud použiju cmake, funguje mi tento CMakeList.txt:
        <br>
        <br>
        <font color="#800000"><b>cmake_minimum_required(VERSION 3.10)
          </b><b><br>
          </b><b>project(widepix2fd)
          </b><b><br>
          </b><b>add_library(pxcore SHARED IMPORTED)
          </b><b><br>
          </b><b>set_property(TARGET pxcore PROPERTY IMPORTED_LOCATION
            "${CMAKE_SOURCE_DIR}/pxcore.dll")
          </b><b><br>
          </b><b>set_property(TARGET pxcore PROPERTY IMPORTED_IMPLIB
            "${CMAKE_SOURCE_DIR}/pxcore.lib")
          </b><b><br>
          </b><b>add_library(wpxTest.dll SHARED widepix2fd.cpp)
          </b><b><br>
          </b><b>target_link_libraries(widepix2fd pxcore)
          </b></font><b><br>
        </b><b>
        </b><br>
        Jenže já bych to potřeboval rozchodit ve VS2017. Ale nedaří se
        mi v nastavení projektu zařídit, aby to fungovalo.
        <br>
        V nastavení projektu All configurations / All Platforms jsem
        nastavil:
        <br>
        Linker/Input/Additional Dependencies jsem přidal pxcore.lib
        <br>
        Build Events/Post-Build Event/Command line jsem dal xcopy /y /d
        "*.dll" "$(OutDir)"
        <br>
        <br>
        Dostal jsem se do stavu, kdy to dělá errory LNK2001 unresolved
        external symbol a za tím název funkce doplněný o podtřžítko.
        <br>
      </blockquote>
    </blockquote>
  </body>
</html>