Skip to content

Conversation

danoli3
Copy link
Member

@danoli3 danoli3 commented Jul 18, 2025

Windows Visual Studio Project Update

Changes to .vcxproj

link windows system libraries used by cURL for ipv6, Cert store access, Entropy, registry APIs, Unicode normalization in URL parsing

Windows System Libraries Linked

Library Symbol(s) Provided Needed By Reason
iphlpapi.lib __imp_if_nametoindex cURL (IPv6 support) Required for resolving interface index names in URL-based IPv6 (zonefrom_url)
ws2_32.lib WSAStartup, connect, etc. cURL, OpenSSL, ofxNet Core Windows Sockets support for networking
wldap32.lib ldap_init, ldap_bind (optional) cURL (LDAP support) Needed only if LDAP support is enabled in cURL
crypt32.lib CryptProtectData, CertOpenStore, etc. OpenSSL, cURL Certificate and secure store functions for HTTPS/TLS
advapi32.lib RegOpenKeyEx, CryptGenRandom OpenSSL, cURL Registry access and entropy source functions
winmm.lib timeGetTime openFrameworks, GLFW Provides high-resolution timing for ofGetElapsedTimeMillis
normaliz.lib IdnToAscii, IdnToUnicode cURL (IDN support) Unicode domain normalization, needed for internationalized URLs

Example: timeGetTime in winmm.lib

  • Function: DWORD timeGetTime(void);
  • Used by: ofGetElapsedTimeMillis() in openFrameworks/app/ofAppRunner.cpp
  • Library: winmm.lib
  • Why: Provides millisecond timing to drive frame rate calculations and delta timing.

Example: __imp_if_nametoindex in iphlpapi.lib

  • Function: NET_IFINDEX if_nametoindex(const char *);
  • Used by: libcurl/url.c (when parsing IPv6 zone IDs in URLs)
  • Library: iphlpapi.lib
  • Why: Enables support for scoped IPv6 addresses like: http://[fe80::1%eth0]/

This change affects the .vcxproj file by inserting the following line into all <Link> blocks in each ItemDefinitionGroup for Debug and Release builds across:

  • x64
  • ARM64
  • ARM64EC
<AdditionalDependencies>
  iphlpapi.lib;ws2_32.lib;wldap32.lib;crypt32.lib;advapi32.lib;winmm.lib;normaliz.lib;%(AdditionalDependencies)
</AdditionalDependencies>

@danoli3 danoli3 changed the title VS Project link windows system libraries used by cURL for ipv6, Cert … Windows Visual Studio Project Update - Links Jul 18, 2025
@danoli3
Copy link
Member Author

danoli3 commented Jul 18, 2025

Disabled Windows 2019 Builds. Server 2019 is Deprecated and no longer works July 2025. So no more 2019 builds gg

Copy link
Member Author

@danoli3 danoli3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All is looking good. Fixes runners and latest url loading issues

@danoli3
Copy link
Member Author

danoli3 commented Jul 20, 2025

Visual Studio Default ISO C++23 Standard /std:c++23preview - rather than Latest C++ Working Draft (/std:c++latest) - fix outdated Visual Studio STL issues

@danoli3
Copy link
Member Author

danoli3 commented Jul 21, 2025

Should fix Android Emu x86_64 after openframeworks/apothecary#543

@danoli3
Copy link
Member Author

danoli3 commented Jul 21, 2025

Confirmed with some Gradle changes Android x86_64 Emu working
image

@danoli3 danoli3 merged commit 18d10fc into openframeworks:master Jul 21, 2025
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant