关于Windows';DLL?

关于Windows';DLL?,dll,autohotkey,Dll,Autohotkey,我在一个名为Tianium的基于JS的框架中编写了一个应用程序。这个框架没有一些功能,所以我绑定了自动热键,并使用STDIN/STDOUT将两者连接起来。Autohotkeys有一个很酷的函数DllCall,它允许与操作系统进行交互,应该可以帮助我缩小基于JS的框架和缺少的功能之间的差距 举个例子,Tianium允许我绑定到特定的端口。但是,如果我绑定到0并让操作系统选择一个空闲端口(它应该这样做),它将工作,但无法确定它实际绑定到哪个端口 现在,由于我来自web应用程序,DLL对我来说是新的;

我在一个名为Tianium的基于JS的框架中编写了一个应用程序。这个框架没有一些功能,所以我绑定了自动热键,并使用STDIN/STDOUT将两者连接起来。Autohotkeys有一个很酷的函数
DllCall
,它允许与操作系统进行交互,应该可以帮助我缩小基于JS的框架和缺少的功能之间的差距

举个例子,Tianium允许我绑定到特定的端口。但是,如果我绑定到0并让操作系统选择一个空闲端口(它应该这样做),它将工作,但无法确定它实际绑定到哪个端口

现在,由于我来自web应用程序,DLL对我来说是新的;所以我有几个问题:

  • 是否有一个包含所有DLL及其所有方法的大型文档
  • 如何知道某些方法是否依赖于某些服务?我的意思是,我听说有些人依赖于RPC、COM、COM+、WMIs等,用户可以关闭这些功能,如果关闭了,这些方法将无法工作。有没有一个地方可以让我得到更多的信息呢
  • 有没有现成的DLL,以及它们的方法,我可以相信它们在XP到7之间都能100%工作
  • 是否有我应该知道的访问权限?是否有文件记录
  • 如果你也来自网络编程,还有什么我应该知道的吗

  • 非常感谢。

    基本上每个问题的答案都是,您应该在MSDN中搜索您感兴趣的函数或API,并阅读其中的文档:


    它们记录了哪些操作系统可以使用这些函数,因此编写在Windows XP及更高版本下工作的内容应该很容易。

    基本上每个问题的答案都是,您应该在MSDN中搜索您感兴趣的函数或API,并阅读其中的文档:

    它们记录了函数在哪些操作系统中可用,因此编写在Windows XP及更高版本中工作的内容应该很容易。

    您可以使用中的文档在线或离线找到所有Windows API函数(驻留在DLL中)的完整文档

    例如,查看的文档。在那里你可以找到各种信息,比如DLL(shell32.DLL)、任何先决条件(min.IE 4)和平台可用性。(至少Windows 2000)还记录了安全注意事项

    所有API函数或多或少都是以这种方式记录的。一个好的起点是。从那里您可以浏览许多API函数

    您可以使用中的文档在线或离线找到(大部分)所有Windows API函数(驻留在DLL中)的完整文档

    例如,查看的文档。在那里你可以找到各种信息,比如DLL(shell32.DLL)、任何先决条件(min.IE 4)和平台可用性。(至少Windows 2000)还记录了安全注意事项


    所有API函数或多或少都是以这种方式记录的。一个好的起点是。从那里您可以浏览许多API函数

    MSDN上提供的Windows API文档涵盖了这一点。您需要的特定函数是getsockname()。当您发现仅仅调用函数是不够的时,您会大发雷霆,您还需要为它们提供适当的参数。获取getsockname()所需的套接字句柄应该很困难,这些是库有意隐藏的实现细节;但为什么他们会故意隐藏实现细节?不是Windows SDK功能,而是您的Tianium框架。我实际上计划将AHK绑定到0,从AHK获取端口号,关闭套接字,然后将其发送到Tianium,以便Tianium可以绑定到“已知免费”的端口号。对于Tianium没有提供的功能,您需要AHK提供哪些功能?MSDN上提供的Windows API文档涵盖了这一点。您需要的特定函数是getsockname()。当您发现仅仅调用函数是不够的时,您会大发雷霆,您还需要为它们提供适当的参数。获取getsockname()所需的套接字句柄应该很困难,这些是库有意隐藏的实现细节;但为什么他们会故意隐藏实现细节?不是Windows SDK功能,而是您的Tianium框架。我实际上计划将AHK绑定到0,从AHK获取端口号,关闭套接字,然后将其发送到Tianium,以便Tianium可以绑定到“已知免费”的端口号。你需要AHK做什么,因为钛合金不能提供?