I’m developing in the C++ Zoom SDK on Windows an application that uses a separate gRPC application connection. I’ve integrated the code into the demo app without issue, but whenever I run the application I get a popup now that says:
sdk.dll is using cares.dll from an unknown publisher. Are you sure you want to run this software?
The cares.dll is CAres and is used by the gRPC library and comes from vcpkg so I know there isn’t malicious code in it, however I can’t find a way to disable this message.
I’ve also tried registering the Disable3rdModuleVerify registry entry but the message still pops up.
Which Windows Meeting SDK version?
Device (please complete the following information):
- OS: Windows 11 22H2 22621.1555
Thank you for posting in the Zoom Developer Forum – I am happy to help here. I understand you are looking to find a way to disable the following message: " Are you sure you want to run this software? "
Is that correct? If so, can you share This behavior happens what happens after you press Yes? Does the application run as expected?
Once you click “Yes” it runs fine, but I’d like to get rid of the popup.
I appreciate your patience on this. The reason you see that pop-up is that your app is trying to load a DLL that the SDK also uses, but the versions don’t match. One solution that you can consider is to match the binary versions
Apologies, I’m slow to reply on this too. Which version of cares.dll is Zoom using? And is there a place where all DLLs the SDK uses with relevant versions is listed? In case I run into any more conflicts.
For some further context, the cares library is included as a .lib file in the gRPC vpkg library manager. Not sure if that helps
Hey, I haven’t received an update on this.
@chunsiong.zoom may be able to help!
What other solutions have developers used for using external DLLs in their Windows C++ SDK solution? It seems like this would be an issue other developers would encounter if you’re looking to upgrade the capabilities of your application.
Sorry for not getting back to you sooner, @tyler – I was out of the office. I have raised this issue with engineering, and their recommendation is to avoid placing the SDK dll in the same path as other dlls used by the application.
The Zoom SDK includes its own version of cares.dll, located at zoom-sdk-windows-126.96.36.19940/arm64/bin/cares.dll, which is signed by Zoom.us. The SDK verifies that it is using this dll. In your case, you have added a cares.dll to your search path, causing Zoom to pick it up first. To resolve this behavior, one option is to use the cares.dll supplied by Zoom by placing it first in your search path.
As for other options for using external DLLs in Windows C++ applications with the SDK, I will need to check internally and get back to you. However, any technique for resolving library collisions should suffice. What have you tried so far?
Hey @donte.zoom, I’m not sure of the specifics of how to change the search path, but I don’t think that’s the issue. What I discovered yesterday was that the cares.dll file was being copied from vcpkg into the bin folder when a build happens, so to fix this, I found this hack:
- Rebuild the project
- When it completes, manually copy a signed copy of cares.dll (can be found in a fresh download of the Windows C++ SDK project) and replace the one in the bin file
This is hacky, but this is the only thing that works.
Thank you for sharing your workaround in the Zoom Developer Forum. Alternatively, you can try to specify what gets loaded with a LoadLibraryA call. I’ve linked it below for reference :
Tried this. That doesn’t work for this library as it doesn’t have this function.
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.