【发布时间】:2012-06-16 23:42:31
【问题描述】:
我有一个库 (ws2_32) 和一个头文件 (ws2tcpip.h),但由于某种原因,库中的某些函数不在头文件中。有没有办法可以确定方法签名,以便我自己将它们包含在标头中?
asdf@fdsa ~$ strings /usr/lib/w32api/libws2_32.a | grep -i 'inet_*ntop'
_inet_ntop@16
__imp__inet_ntop@16
_InetNtopW@16
__imp__InetNtopW@16
inet_ntop <<< I need this one
_inet_ntop@16
__imp__inet_ntop@16
InetNtopW <<< or this one
_InetNtopW@16
__imp__InetNtopW@16
asdf@fdsa ~$ grep -i -B 4 -A 2 -R "ntop" /usr/include/w32api/ws2tcpip.h
asdf@fdsa ~$
这应该是可能的,因为链接器必须验证这一点,不是吗?
【问题讨论】:
-
对于 C 函数,链接器通常只检查函数名是否匹配,而不是检查它们是否具有相同的类型或调用约定。在某些系统上,链接器甚至不会验证您调用的函数是否是函数,它可能是一大块数据。
标签: c winapi gcc cygwin winsock2