草庐IT

c++ - 是否可以在nodejs或golang中使用Visual C++ MFC函数插件?

目前,我有一些使用MFC的visualc++函数。我可以在nodejs或golang中将此函数用作c++插件吗?具体来说,我需要通过我的golang或nodejs代码以某种方式访问​​OCX(ActiveX)对象。所以,我决定用c++写下插件,但发现不使用MFC/ATL的东西真的很难。那么,我可以将这些MFC/ATL函数用作nodejs或golang中的插件/扩展吗?谢谢! 最佳答案 您可以从插件C++代码调用ATL/MFC代码,但如果没有中间包装层,您不能直接从nodejs/golang绑定(bind)到ATL/MFC。注意:no

c++ - 对话框不显示在任务栏中

我试图让一个没有边框或框架的CDialog显示在任务栏中。它是在CWinApp的InitInstance中创建的(用于更新应用程序),我已经尝试设置WS_EX_APPWINDOW标志,但它仍然没有显示在任务栏中。有什么想法吗?编辑:如资源中所定义:IDD_UPDATEFORM_DIALOGDIALOGEX0,0,246,124STYLEWS_POPUPEXSTYLEWS_EX_APPWINDOWFONT8,"MSShellDlg",400,0,0x1BEGINEND作为使用:UpdateForm*dlg=newUpdateForm(UPDATE_FILES,CWnd::GetDeskt

windows - 不同DPI、高度计算的CComboBoxEx问题

我想在我的窗体上添加一个CComboBoxEx,但我必须将它与其他控件对齐并使其高度相同。问题是我找不到获取此控件高度的正确方法。如果我设置窗口矩形,那会影响下拉列表框。如果我强制它为某个固定大小,并且组合中的内容较高,则控件会在底部被剪裁。有没有办法根据图像和当前DPI设置计算ComboBoxEx的大小?这样,如果我无法调整控件的内部填充,我至少可以扩展其他控件。据我所知,MSDN根本没有涉及大小问题。 最佳答案 组合框会自动设置控件的高度,正如您所发现的,尝试设置自己的高度实际上会影响下拉列表的高度。要获得控件的实际高度(以便您

windows - 从 SendMessage() + WM_COPYDATA 获取响应

目前我正在研究一个使用WM_COPYDATA将用户数据发送到其他进程的示例。我构造COPYDATASTRUCT结构来填充用户数据。并使用SendMessage()函数将数据发送到其他进程。OnCopy()函数返回真/假值。但想要得到除true/false之外的其他信息(如int、char[]、float等)。请帮助我从除true/false之外的其他进程获得响应问候 最佳答案 大家好,您可以使用包含返回数据的COPYDATASTRUCT结构通过SendMessage执行发送响应。您无法更改SendMessage返回类型。

windows - MFC 鼠标激活 : Where is focus if you eat the mouse event?

焦点在哪里?焦点是留在之前保持焦点的窗口上,还是焦点处于边缘状态,没有窗口?我注意到,当我吃一条消息时,似乎没有任何焦点。我返回MA_NOACTIVATEANDEAT 最佳答案 焦点不能处于边缘状态。某些东西总是必须有焦点,所以它要么是以前拥有焦点的窗口,要么是被鼠标事件激活的新窗口。documentationCWnd::OnMouseActivate告诉我们将发生什么,这取决于您从函数返回的值:MA_ACTIVATEActivateCWndobjectMA_NOACTIVATEDonotactivateCWndobjectMA_A

c++ - 如何在我的 vc++ 代码中包含 CTime

我需要在我的代码中使用CTime。我试图将头文件“atltime.h”添加到这段代码中。但是现在,我在编译时遇到了很多错误。每个错误都来自头文件“afxconv.h”。我在msdn上搜索了CTime,但他们没有对此进行描述(可能是我还没有看到正确的页面)。我正在使用VisualStudio-2008,64位。谁能给我指出正确的方向? 最佳答案 听起来您与CTime的MFC和ATL版本有冲突。由于您在标签中指定了MFC,我怀疑您需要MFC版本。atltime.h用于ATL项目。Afx.h有MFC的CTime,AFAIK通常总是包含在s

windows - 使用 MFC 从 SystemTime 获取当前时间

我想获取相对于MFC中当前系统时间的UTC或GMT时间。我已经尝试使用CTime的GetGmtTm(),如下所示structtm*osTime=NULL;tmt1=*(currenttime.GetGmtTm(osTime));CTimecurrentUTCTime(1900+t1.tm_year,t1.tm_mon+1,t1.tm_mday,t1.tm_hour,t1.tm_min,t1.tm_sec,t1.tm_isdst);CTimeSpants=currentUTCTime-oldtime;//oldtimepointstoUnixEpoch1/1/197000:00:00un

c++ - MFC WinApp在不同线程中调用InitInstance和OnAppExit/destructor

我在我们的一个客户环境中遇到问题-当我在OnAppExit(或析构函数)中使用AfxGetApp()->WriteProfileString时它不起作用。我无法在任何地方复制它。我追踪到OnAppExit是从与InitInstance不同的线程调用的——同样,这在我的任何机器上都不是真的。这会是问题所在吗?而且,为什么OnAppExit在不同的线程中被调用?谢谢。 最佳答案 如果您的应用中有线程生成错误并调用exit,则OnAppExit可能会在不同的线程上被调用。在正常使用情况下,OnAppExit应该只在您的主线程中调用。这是e

windows - 使用mfc42.dll 作为免注册COM?

我正在使用第三方Active-X控件,该控件需要在用户系统上安装特定版本的MFC42.dll。我正在尝试为我的产品的非管理员安装添加支持,并且必须安装例如mfc42.dll到系统文件夹并注册它显然使这不可能。第三方Active-X使用manifest文件作为免注册COM,想知道是否可以对MFC42.dll和MSVCRT.DLL做同样的操作,将它们存放在应用程序文件夹中?有人试过这个吗? 最佳答案 这是不可能的。MSVCRT和MFC42.dll不是COM对象,甚至不是win32程序集,因此不能使用无注册COM访问。您可以安装mfc42

windows - shell 扩展会导致我的程序崩溃吗?

我的公司构建了一个在WindowsXP上运行的MFC应用程序。我们的一位客户报告说,此应用程序在打开通用文件对话框以允许用户保存日志文件时发生崩溃。我们还没有在我们的任何集成系统上观察到这种崩溃。客户向我们提供了一个故障转储,显示该程序正试图从地址160b2d48处的一些不可访问的内存中读取。该地址似乎来自地址空间的代码部分,因为在其正上方和下方加载了DLL(15dc0000-16085000和160c0000-1611b000),但该地址未加载任何内容。崩溃线程的堆栈如下:>shell32.dll!CFSFolder::GetDetailsEx()+0x533c8bytesshell