Jump to content

buzzdx

Members
  • Posts

    28
  • Joined

  • Last visited

Everything posted by buzzdx

  1. I think you can expose classes and methods via a DLL. Poco for example does it. But, at least for code compiled with Visual Studio, it comes with a drawback: The exported classes can only be linked with other modules that use the same specific compiler version and compiler settings. For Poco it works by downloading the source, building the dlls and then using them with exactly the same compiler and settings. So in case of Ultra AppKit this might not be a good choice as the consumers of the dll would need to use said settings and the same version of Visual Studio. I understand that it's already a lot to keep track of. I didn't think of that before, and assumed it would not be a great deal. The difference between MD and MT is the runtime they use. MT uses a static runtime version, MD links dynamically to the msvcrXYZ.dll, xyz being the version number. Info taken from here: https://docs.microsoft.com/en-us/cpp/build/reference/md-mt-ld-use-run-time-library?view=msvc-160 So my guess is that all the other libs you use also are set to /MT now, else they would probably not work. Which means in case you would consider changing to /MD, you would indeed have to change the whole chain. Would it be possible to check one of the lib's project settings to make sure if you have time for that? I will try and compile Poco as static libs and see how that goes for now. I'll post an update later.
  2. "I don't think a DLL will support a C++ API" -- I'm not sure I understand this part. Does it make a difference if the code is delivered in a DLL or as a static library? "and even if it did there is still usually a static library the program must link to." -- That's right, Poco comes with the DLLs and then there's static libs the linker needs. "Since POCO seems to be open-source, why can't it be compiled with MT/MTd code generation? " -- That is probably possible to achieve. However, since everything else I encountered so far did work with the /MD setting, I thought it would be easier to change the one that's different rather than all the others, and therefore went on to ask ? Thinking of wxwidgets right now it comes to my mind that you don't even need a DLL to use the /MD flags. Wxwidgets compiles to static libraries which work with the /MD setting. So maybe I should rephrase the question to: Is it possible to get the AppKit.lib compiled with /MD flag instead of /MT? Thanks for your time and answers so far.
  3. I bought Ultra AppKit today and tried adding it to one my of my existing projects. When trying to compile I got an error about mismatching types of Multithreaded DLL (MD) and Multithreaded (MT) runtimes. I tried creating a fresh project and setting it to /MT which resulted in the code getting compiled and running fine. Since I need to also use other libraries, mostly the Poco C++ libraries, is it possible to add an AppKit.dll and accompanying AppKit.lib using Multithreaded DLL to the release version of AppKit? Or am I missing something obvious here to get it working like it is? On a side note: I really like the API and will use it to teach my friend C++ GUI applications. Yet there are some things missing imo, like lists with multiple fields and the ability to use icons in lists and trees. I will try to implement these in a custom widget - could you please add the source code for the tree widget to the github page? Also the Ultra Engine app that comes with steam does not seem to work for me. I enter user/password, but i cannot click the button to login. Any idea why that is? Many thanks in advance,
×
×
  • Create New...