让 wpcap.dll "optional"
Make wpcap.dll "optional"
我正在编写一个利用 WinPcap 访问网络流量的程序。
我的问题是,假设我 运行 程序在没有安装 WinPcap 的机器上(即没有 wpcap.dll),可执行文件一旦启动将尝试加载 DLL 依赖项并崩溃当它发现没有 wpcap.dll.
在这种情况下,我想回退到 WinSock 而不会导致程序崩溃。这可能吗?
我能想到的唯一解决方案是从链接器中删除 winpcap 依赖项并尝试通过 LoadLibrary 调用手动加载 wpcap DLL。
我能以某种方式防止应用程序初始化期间崩溃吗? (即捕获 "DLL not found" 并使用 WinSocks 替代方案继续执行)
谢谢!
您的选择是:
- 按照问题中的建议从加载时间切换到 运行 时间链接。这意味着使用
LoadLibrary
和 GetProcAddress
加载 DLL 并绑定到它的函数。
- 切换到delay loading the DLL。
我正在编写一个利用 WinPcap 访问网络流量的程序。
我的问题是,假设我 运行 程序在没有安装 WinPcap 的机器上(即没有 wpcap.dll),可执行文件一旦启动将尝试加载 DLL 依赖项并崩溃当它发现没有 wpcap.dll.
在这种情况下,我想回退到 WinSock 而不会导致程序崩溃。这可能吗?
我能想到的唯一解决方案是从链接器中删除 winpcap 依赖项并尝试通过 LoadLibrary 调用手动加载 wpcap DLL。 我能以某种方式防止应用程序初始化期间崩溃吗? (即捕获 "DLL not found" 并使用 WinSocks 替代方案继续执行)
谢谢!
您的选择是:
- 按照问题中的建议从加载时间切换到 运行 时间链接。这意味着使用
LoadLibrary
和GetProcAddress
加载 DLL 并绑定到它的函数。 - 切换到delay loading the DLL。