问题标签 [hinstance]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4322 浏览

c++ - “hInstance”未定义。c++ WIN32 APP

Win32 应用程序。在 MyRegisterClass 中,wc.hInsance = hInstance.Apparently “hInstane 是一个未定义的标识符。为什么?我使用 Visual Studio 2013 并且我正在关注 Jonathan S Harbours 关于游戏编程的书。

代码。

0 投票
1 回答
53 浏览

mingw - main.cpp 和 window.cpp(一个类)中不能包含奇怪的标头

我必须从我的 .cpp 和 .h 文件创建一个静态链接的独立 .exe 文件。

我需要克服的唯一障碍是能够m_pListAll()从两个 .cpp 文件中调用相同的函数,main.cpp并且window.cpp(定义一个名为 的类Window)。

唯一的问题是(由于未知原因)我不能#include定义 m_peDO() 两次的头文件main.cppwindow.cpp我只能做一次,因为头文件设置了一个叫做“动态链接”的东西,有一些奇怪的东西叫做HINSTANCE(错误:实际原因在答案部分):

还有更多功能,但假设我想在 main.cpp 和 window.cpp 中使用 tListAll m_pListAll。我的 Qt 项目包含以下文件:

为什么我要使用这个奇怪的 HINSTANCE 东西?与我的 .lib 文件与 minGW 不兼容有关。如果我将库静态添加为编译的一部分,我会得到: :-1: 错误:没有规则可以制作目标 'C:/Users/Joey/Documents/ValvePermissions/libLabJackU.a',这是 'release\ValvePermissions 所需的。可执行程序'。停止。

我应该怎么办?我只是希望该函数在 window.cpp 的范围内,但由于错误,我不想使用该标头两次。

0 投票
1 回答
205 浏览

dll - 同一个 dll 中的 DLL 实例

我有一个在应用程序中使用的 MFC dll。这个 Dll 没有 DLLMain 函数。现在我如何在 dll 中检索所述 dll 的hinstance?我使用的是 VS 2010。

0 投票
0 回答
65 浏览

c++ - 在您自己的 dll 类中使用来自 3rd 方 api 的回调函数

我正在尝试在使用来自另一个 dll 的回调函数的 dll 中编写一个类。目前,当我在主函数中调用它时,我可以让回调工作,但我在将它集成到我自己的 dll 中时遇到问题。

我在常规项目和 dll 即时编译中使用 Hinstance。这适用于常规项目:

但是,当我尝试将它移植到我正在编译为 dll 的类中的初始化函数中时,这会失败(我试图使用绑定函数,但 #include 给了我错误(使用 Visual Studios 2015)

我得到的错误是"assigning to ' void(*)(float *,long long, int)' from incompaible type 'void(MyClass::*)(float *,long long,int)"

我应该用不同的方法来解决这个问题吗?我不确定如何处理这个问题,因为我只能访问函数回调而不是源。

编辑:我意识到将 mycallback 转换为静态可以解决问题,但随后我会遇到无法将值存储在某处的问题。还是有一个好方法可以做到这一点?

完整代码供进一步参考:

这是来自第 3 方 dll 的函数

我正在尝试转换上述内容并将其与来自多个 dll 的其他功能一起打包到另一个 dll(驱动程序)中。我现在要做的具体任务是从我正在使用的 dll 的回调中存储一个数组。在这种情况下,我存储的其中一件事是values[]

0 投票
1 回答
1101 浏览

c++ - 在构造函数中初始化对 HINSTANCE 的引用

我有一个类,我想将它作为一个全局对象(我有充分的理由),但为此我需要初始化所有元素(如果没有,我会得到 C2512 没有默认构造函数)这是一个问题,因为我在其上使用了对 HINSTANCE 的引用,我也需要对其进行初始化,但我不知道该怎么做。这是代码:

任何想法我该怎么做?,谢谢!

0 投票
0 回答
125 浏览

winforms - mingw g++ Windows子系统WinMain没有得到hInstance值

我正在使用 mingw G++(都在 Windows 10 上)将 VS2015 C++ directx/winforms 应用程序转换为 VS 代码。

我在添加 -mwindows 选项(和一大堆库)后对其进行编译和链接,但是在进入 WinMain 时,hInstance 没有任何价值。

这会导致任何依赖于它的东西,比如 LoadString 或 RegisterClassEx 不起作用。

我应该寻找什么?

0 投票
2 回答
207 浏览

c++ - win32 hInstances 是唯一的吗?

我正在编写一个缓存处理程序,它需要应用程序的每个实例的唯一 ID 号,这样当有人在两个实例中打开两个项目时,缓存不会混淆。根据这个线程HINSTANCE,传递给的似乎WinMain是模块的句柄,它可能只是 exe,不一定是唯一的进程 ID。

该线程似乎说有关要运行的模块/进程的信息只被带入内存一次,并且HINSTANCE是一个句柄。这是否意味着HINSTANCE不能用作进程的唯一标识符,因为它们都指向同一个模块?还是我弄错了?

0 投票
1 回答
173 浏览

c - 使用主入口点将 HINSTANCE 传递给 WNDCLASS

考虑以下代码:

这会创建一个空白窗口,我想重现它,但使用main入口点而不是wWinMain.

以下代码有效,但感觉非常hacky:

有没有更好的办法?