visual-c++相关内容

为什么在具有多个接口() 的对象中实现 QueryInterface() 时我需要显式向上转换

假设我有一个实现两个或多个 COM 接口的类: class CMyClass : public IInterface1, public IInterface2 {}; 我看到的几乎所有文档都表明,当我为 IUnknown 实现 QueryInterface() 时,我明确地将 this 指针向上转换为其中一个接口: if(iid == __uuidof(IUnknown)){*ppv = s ..
发布时间:2022-01-14 11:34:32 C/C++开发

关于在 C 中通过 iso_c_binding 使用 Fortran 函数

我花了几天时间学习 Fortran 的 C 互操作性,以便从 C 调用 Fortran 函数 DLL.在这里我找到了这个链接:在 C 中使用 Fortran 代码 我尝试像这样创建一个 Fortran DLL,而我的编译器是 Intel Fortran 编译器: 模块集成隐式无包含函数积分(func,a,b,intsteps)结果(积分)!DEC$ 属性 DLLEXPORT :: 集成界面 ..

ATL CString 到字符数组的转换

我想转换 CString 转换成 char[].有人告诉我该怎么做? 我的代码是这样的: CString strCamIP1 = _T("");字符 g_acCameraip[16][17];strCamIP1 = theApp.GetProfileString(strSection, _T("IP1"), NULL);g_acCameraip[0] = strCamIP1; 解决方案 ..
发布时间:2022-01-12 20:54:41 C/C++开发

将 BSTR 转换为 char*

有人知道如何将 BSTR 转换为 char* 吗? 更新:我试过这样做,但不知道是对还是错. char *p= _com_util::ConvertBSTRToString(URL->bstrVal);strcpy(testDest,p); 解决方案 你的代码没问题.ConvertBSTRToString 确实只是.至于 strcpy,testDest 需要足够大以容纳 p 指向的字符 ..
发布时间:2022-01-12 20:33:03 C/C++开发

如何在基于 MFC 对话框的应用程序中为复选框捕获 MouseMove 事件?

我的应用程序是一个基于 VC6 MFC 对话框的应用程序,具有多个属性页. 我必须在控件上捕获 mousemove 事件,例如 Checkbox. 如何在 MFC 中的复选框上捕获 mousemove 事件? 解决方案 感谢您的回复.我找到了为我的应用获取 mousemove 事件的方法. WM_SETCURSOR windows 消息获取鼠标移动.它返回控件和对话框的 ..
发布时间:2022-01-12 15:28:13 C/C++开发

CDialog 和 CDialogEx 的区别

CDialog 和 CDialogEx 有什么区别?我决定使用 CDialog,因为如果 Dlg 派生自 CDialogEx,我无法将 m_pMainWnd 分配给 Dlg. BOOL CPreparationApp::InitInstance(){MyClass2 Dlg;//派生自CDialogm_pMainWnd = &Dlg;Dlg.DoModal();返回真;} 不使用表单向导提供的 ..
发布时间:2022-01-12 15:27:57 C/C++开发

属性表 (MFC) 的 RTL 布局问题

我正在阿拉伯语 Windows 中运行我的英语应用程序.它包含一个属性表 UI (MFC).一切似乎都很好(从左到右或 LTR),除了从右到左或 RTL 的按钮(确定、取消、应用和帮助).但是如何使按钮 LTR? 我玩过 MSDN 上提到的 PSH_RTLREADING 标志,但它只处理窗口标题,而不处理按钮. 此外,我注意到 这个讨论 但没有好的解决方案. 解决方案 由Ray ..
发布时间:2022-01-12 15:27:26 C/C++开发

如何将 MFC 支持添加到现有的 Win32 C++ 项目?

我正在创建一个使用 Qt 创建 GUI 的 C++ 应用程序.但是,我需要使用依赖于 MFC 的第三方库(用于 CString 等).有没有办法将 MFC 添加到我的应用程序中以允许我使用这个库,还是我需要自己重写它? 我看到这个问题,但它没有告诉我如何添加MFC 手动到项目中. 解决方案 如果库应用采用/返回/使用 CString,则需要与 MFC 库链接,或者 MFC 库已经静态 ..
发布时间:2022-01-12 15:26:59 C/C++开发

静态链接 MFC 时未修改的 Visual Studio 2012 MFC 模板中的链接错误

在 Visual Studio 2012 中创建最简单类型的新 MFC 应用程序并将其设置为静态链接到 MFC 时,链接失败. 这是从创建项目开始的7 个屏幕截图库通过向导,直到建筑物(导致链接器错误).中间没有进行源代码编辑. 错误日志状态: 1>------ 构建开始:项目:测试,配置:调试 Win32 ------1>stdafx.cpp1>测试Dlg.cpp1>测试.cpp1 ..
发布时间:2022-01-12 15:26:53 C/C++开发

MFC:如何更改 ListCtrl 个别行的颜色/粗体?

使用 MFC 和 Visual Studio 2010 C++.我需要一种方法来突出 CListCtrl 的某些单独的行(但是我不想使用内置的选择功能来突出显示这些行).它可能是行背景的颜色,或字体粗细,甚至可能是图像(如果这是高性能的话). 理想情况下,我想知道如何使用库存列表控件来做到这一点.但是,如果这不可能,请告诉我使用 3rd 方代码的方法. 更新 这是我最终使用的代码 ..
发布时间:2022-01-12 15:26:27 C/C++开发

如何获取通过网络驱动器访问的文件的 UNC 路径?

我正在使用 VC++ 开发一个使用网络驱动器访问文件的应用程序.驱动器由用户手动分配,然后在应用程序中选择驱动器.这会导致驱动器并不总是映射到相同的服务器. 如何获取此类文件的 UNC 路径?这主要用于识别目的. 解决方案 这是我用来将普通路径转换为 ​​UNC 路径的函数: wstring ConvertToUNC(wstring sPath){WCHAR 温度;UNIVERSA ..
发布时间:2022-01-12 15:26:18 C/C++开发

Windows API 中逻辑坐标和设备坐标之间的混淆

我一直在研究一个 Visual Studio C++ Windows 应用程序项目,它使用了两个函数 SetWindowExt (...) 和 SetViewportExt (...).我对这两个功能的作用以及为什么它们是必要的感到困惑.搜索这些函数,我想到了逻辑坐标和设备坐标的概念. 谁能解释一下这两个概念的重要性? 解决方案 设备坐标是最容易理解的.它们与您使用的设备直接相关,例 ..
发布时间:2022-01-12 15:23:52 C/C++开发

如何将图标添加到 MFC 功能区按钮

我使用 Visual C++ 2010 创建了一个带有功能区的 MFC 应用程序.我已向此功能区添加按钮,但我不知道如何向这些按钮添加图像.我尝试从项目中编辑 writelarge.bmp 文件,并在这些按钮上设置图像索引,但现在功能区图标看起来非常难看.除了从项目中编辑 writelarge.bmp 文件之外,是否有一种简单的方法可以将图标添加到功能区图像? 解决方案 您可以为每个 Ri ..
发布时间:2022-01-12 15:21:10 C/C++开发

SetWindowPos() 函数不移动窗口?

我有一个对话框,我想将它放在另一个对话框中,并相对于主对话框上的一个控件进行定位. void CspAceDlg::DrawResultsArea(){CWnd* pTabCtl = GetDlgItem(IDC_BUILDTABS);CRect rectTabCtl;//为控件的位置分配 CRect.pTabCtl->GetWindowRect(&rectTabCtl);int resX = ..
发布时间:2022-01-12 15:20:39 C/C++开发

是否可以将 CMFCToolBar 添加到对话框中?

我刚刚尝试了将 CToolbar 添加到新 CMFCToolBar 上的对话框的标准方法.但它不起作用.在我进入新的实现之前,我想知道它是否真的可能? 解决方案 我不确定您所说的“标准方式"是什么意思,但您当然可以通过编程方式实现: //在 MyDlg.h 中类 CMyDlg:公共 CDialog{...CMFCToolBar m_ToolBar;...};//在 MyDlg.cpp 中 ..
发布时间:2022-01-12 15:20:31 C/C++开发

使用后需要删除 CString 以释放内存吗?

如果我使用这样的 CString: void myFunc(char *str){CString s(str);//用 CString 操作其他数据//...//完成的//我应该以某种方式删除's'以避免内存泄漏吗?} 一旦函数超出范围,字符串是否会被删除? 另外,我知道 new 关键字分配内存,如果我构造一个没有 new 关键字的对象,内存仍然分配吗?我的直觉告诉我是的,但我想验证一下 ..
发布时间:2022-01-12 15:19:45 C/C++开发

MFC - 资源 ID 唯一性

我正在使用外部资源开发 MFC 应用程序. resource.h 文件已由其他开发人员手动编辑,我发现存在冲突的 ID. 我见过微软 TN020:ID 命名和编号约定. 我只是想知道控件和其他资源的 ID(不包括字符串)在整个应用程序中是否必须是唯一的,或者如果它们对于每个定义的对话框都是唯一的就足够了. 解决方案 同一个对话框中的两个控件必须有不同的ID(使用IDC_S ..
发布时间:2022-01-12 15:16:59 C/C++开发

如何在 MFC 中选中和取消选中以及启用和禁用复选框控件

使用 Visual C++ MFC 复选框控件执行标准复选框操作的源代码是什么? 在显示的复选框控件中设置检查 清除显示的复选框控件中的复选标记 为用户输入启用显示的复选框控件 为用户输入禁用显示的复选框控件 解决方案 在 MFC 中控制复选框 以下是在 MFC 中选中、取消选中、启用和禁用复选框的方法: CButton* pBtn = (CButton*) GetD ..
发布时间:2022-01-12 15:16:09 C/C++开发