C 从同一dll调用多个函数

C 从同一dll调用多个函数,c,windows,winapi,dll,C,Windows,Winapi,Dll,这可能很简单。。我在SO中搜索了答案,但找不到我想要的,这就是为什么我在这里发布了一个问题。以下是我的疑问 我正在开发一个使用Windows默认DLL的应用程序。我正在使用来自同一加载dll的多个函数。例如: HINSTANCE hinstLib; hinstLib = LoadLibrary( "Crypt32.dll" ); 然后使用以下代码导出函数: CertOpenStore = (fptr1)GetProcAddress(hinstLib, "CertOpenStore"); 现在

这可能很简单。。我在SO中搜索了答案,但找不到我想要的,这就是为什么我在这里发布了一个问题。以下是我的疑问

我正在开发一个使用Windows默认DLL的应用程序。我正在使用来自同一加载dll的多个函数。例如:

HINSTANCE hinstLib;
hinstLib = LoadLibrary( "Crypt32.dll" );
然后使用以下代码导出函数:

CertOpenStore = (fptr1)GetProcAddress(hinstLib, "CertOpenStore");
现在我想使用同一dll中的另一个函数。在这种情况下,我将如何执行上述操作:

CertAddEncodedCertificateToStore(CertOpenSystemStore(0,"TrustedPublisher"),PKCS_7_ASN_ENCODING |X509_ASN_ENCODING,pbEncodedCert,dwSize,CERT_STORE_ADD_REPLACE_EXISTING,NULL);

其中
CertAddEncodeCertificateTostore
CertOpenSystemStore
都属于同一个dll?

与您之前所做的相同,但用于不同的函数名:

fptr1 OtherFunc = GetProcAddress(hinstLib, "OtherFunc");

正如您之前所做的那样,但对于不同的函数名:

fptr1 OtherFunc = GetProcAddress(hinstLib, "OtherFunc");

它们与您对
CertOpenStore
所做的相同。我只将库加载到一个句柄(hinstlib)中,以及如何为两个不同的函数导出。问题是什么?显然,您可以使用相同的句柄调用GetProcAddress任意多次。你为什么认为你需要做更复杂的事情?@hary:你说得对,hary。把手部分有点搞混了。还有一个疑问是,如果我想使用另一个dll,我可以在这里使用不同的句柄??它们与您对
CertOpenStore
所做的方式相同。我只将库加载到一个句柄(hinstlib)中,以及如何导出两个不同的函数。问题是什么?显然,您可以使用相同的句柄多次调用GetProcAddress。你为什么认为你需要做更复杂的事情?@hary:你说得对,hary。把手部分有点搞混了。还有一个疑问是,如果我想使用另一个dll,我可以在这里使用不同的句柄,对吗??