tcpdump mailing list archives

Re: Remove the eproto_db symbol exporting to keep the DLL delay-load feature on Windows


From: Yang Luo <hsluoyb () gmail com>
Date: Tue, 28 Jun 2016 16:41:23 +0800

The weird thing is that the original libpcap used by Npcap/WinPcap also
exported eproto_db, but the build of WinDump doesn't complain that link
error. I don't know what the difference is here?

Error 646 error LNK1194: cannot delay-load 'wpcap.dll' due to import of
data symbol '__imp_eproto_db'; link without /DELAYLOAD:wpcap.dll


Cheers,
Yang


On Tue, Jun 28, 2016 at 1:56 PM, Yang Luo <hsluoyb () gmail com> wrote:

Hi list,

Because of libpcap has exported the a data structure called eproto_db (
https://github.com/the-tcpdump-group/libpcap/blob/master/nametoaddr.c#L320),
when I compiled WinDump in MSVC specifying "wpcap.dll" as a delay loaded
DLL, I encountered the link error 1194. The cause is here:
https://msdn.microsoft.com/en-us/library/w59k653y%28v=vs.80%29.aspx?f=255&MSPPError=-2147217396
.

Delay loading wpcap.dll is an important part for the switch between Npcap
mode and WinPcap mode. And from the comment, it seems that exporting this
data is not very critical. So can we remove the "PCAP_API_DEF" at the line
beginning to disable the exporting?


Cheers,
Yang


_______________________________________________
tcpdump-workers mailing list
tcpdump-workers () lists tcpdump org
https://lists.sandelman.ca/mailman/listinfo/tcpdump-workers


Current thread: