Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/124.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++;API DLL项目 我有一个C++项目,它使用一个附带DLL和LIB文件的API,以及一个头文件。 我想创建一个win32 forms项目_C++_Winforms_Api_Winapi_Dll - Fatal编程技术网

C++;API DLL项目 我有一个C++项目,它使用一个附带DLL和LIB文件的API,以及一个头文件。 我想创建一个win32 forms项目

C++;API DLL项目 我有一个C++项目,它使用一个附带DLL和LIB文件的API,以及一个头文件。 我想创建一个win32 forms项目,c++,winforms,api,winapi,dll,C++,Winforms,Api,Winapi,Dll,我的问题是如何将项目与dll和lib文件链接 但主要问题是,我如何订阅活动? 在API中,我可以调用函数,这些函数在事件响应时返回,在MFC项目中,我通常会在消息循环中订阅这些函数。但是在Win32中没有消息循环 也许是我自己让情况复杂化了,这比我想象的要容易。 请为我澄清一下这个情况 谢谢。当有人问一个以上的问题时,总是很难回答。。。对于“主要问题”,请显示订阅事件的相关API调用。Win32中没有消息循环的说法是错误的。。。只是没有MFC消息循环 我现在回答一个简单的问题。。。“如何链接DL

我的问题是如何将项目与dll和lib文件链接

但主要问题是,我如何订阅活动? 在API中,我可以调用函数,这些函数在事件响应时返回,在MFC项目中,我通常会在消息循环中订阅这些函数。但是在Win32中没有消息循环

也许是我自己让情况复杂化了,这比我想象的要容易。 请为我澄清一下这个情况


谢谢。

当有人问一个以上的问题时,总是很难回答。。。对于“主要问题”,请显示订阅事件的相关API调用。Win32中没有消息循环的说法是错误的。。。只是没有MFC消息循环

我现在回答一个简单的问题。。。“如何链接DLL”。我假设您使用的是Visual Studio。对吗?我这样做的方式,当我很匆忙的时候是这样的:

#include "mylib.h"
#pragma comment(lib, "mylib.lib")
就这些。当然,我想要标题,但是当我这样做的时候,我告诉编译器也链接库

我似乎还记得其他时候,我只是将库文件拖到项目的解决方案视图中,有效地将其作为源添加。这也行得通

很长的一段路是编辑项目设置,转到链接器部分,然后在输入子部分下,将库添加到附加依赖项列表中。对于所有配置,您都需要这样做。有很多方法可以正确地维护它,但我在这里不赘述


如果您没有使用Visual Studio,请忽略我的回答。

当有人问多个问题时,总是很难回答。。。对于“主要问题”,请显示订阅事件的相关API调用。Win32中没有消息循环的说法是错误的。。。只是没有MFC消息循环

我现在回答一个简单的问题。。。“如何链接DLL”。我假设您使用的是Visual Studio。对吗?我这样做的方式,当我很匆忙的时候是这样的:

#include "mylib.h"
#pragma comment(lib, "mylib.lib")
就这些。当然,我想要标题,但是当我这样做的时候,我告诉编译器也链接库

我似乎还记得其他时候,我只是将库文件拖到项目的解决方案视图中,有效地将其作为源添加。这也行得通

很长的一段路是编辑项目设置,转到链接器部分,然后在输入子部分下,将库添加到附加依赖项列表中。对于所有配置,您都需要这样做。有很多方法可以正确地维护它,但我在这里不赘述


如果您未使用Visual Studio,请忽略我的回答。

您无法将项目与dll文件链接,您可以将项目与库文件链接,您可以在项目设置对话框(链接器)中添加库文件名

或者,将其添加到代码中

#pragma comment(lib,"xxxx.lib")
Dll文件将在运行时加载

有关消息循环,请参阅


或者:

您不能将项目与dll文件链接,您可以将项目与lib文件链接,您可以在“项目设置”对话框(链接器)中添加lib文件名

或者,将其添加到代码中

#pragma comment(lib,"xxxx.lib")
Dll文件将在运行时加载

有关消息循环,请参阅



或者这样:

当您直接使用Win32 API时,您可以创建自己的消息循环。我该怎么做?我如何确保我从API调用的函数中得到“事件”响应?也许我应该备份:你是在这个程序中创建任何实际的窗口,还是一个控制台程序?Jerry,我的错,我没有提到我打算使用win32 forms project。所以,是的,我想创建表单。你为什么选择winforms而不是WPF?我这么问是因为winforms的日子已经不多了。MS在中期的未来依靠WPF(但你可以指望他们会像往常一样改变这一点)。当你直接使用Win32 API时,你可以自己创建消息循环。我该怎么做?我如何确保我从API调用的函数中得到“事件”响应?也许我应该备份:你是在这个程序中创建任何实际的窗口,还是一个控制台程序?Jerry,我的错,我没有提到我打算使用win32 forms project。所以,是的,我想创建表单。你为什么选择winforms而不是WPF?我这么问是因为winforms的日子已经不多了。微软指望WPF在中期的未来(但你可以指望他们会像往常一样改变这一点)。万岁,快点!不要通读所有的pragma。我正在使用Visual Studio。函数调用的一个例子是:voidsubscribl1quotes(char*psymbol,boolbsubscribe);它的响应是:虚拟int OnLv2Quote(st_L2Quote*pst);我怎样才能得到这个答复?谢谢你,这很神秘。。。如果它使用的是Windows消息循环,我想至少需要一个
HWND
。你是不是忽略了什么?例如,您是否可以在API中设置事件回调函数?或者,API是否创建对象?我看到“响应”是一个虚拟函数。大概您可以覆盖一些东西…在API中它说:PreTranslateMessage(MSG*pMsg)函数应该放在您的消息循环中。如果您正在使用MFC,请将其放入CWinApp::PreTranslateMessage()函数中。我没有使用MFC,但我在Win32 Form项目中没有看到任何CWinApp类……看看这个:万岁,快点!不要通读所有的pragma。我正在使用Visual Studio。函数调用的一个例子是:voidsubscribl1quotes(char*psymbol,boolbsubscribe);它的反应是:虚拟int