visual-c++相关内容
我有一个 COM 类 CMyCOMServer 在一个应用程序中实现 IMyInterface,两者都具有正确的 GUID.如果请求 IUnknown 或 IMyInterface,CMyCOMServer::QueryInterface 将返回 S_OK(并将自身转换为正确的类型),否则返回 E_NOINTERFACE. 在同一台 PC 上的另一个应用程序中,我调用: HRESULT h
..
假设我有一个实现两个或多个 COM 接口的类: class CMyClass : public IInterface1, public IInterface2 {}; 我看到的几乎所有文档都表明,当我为 IUnknown 实现 QueryInterface() 时,我明确地将 this 指针向上转换为其中一个接口: if(iid == __uuidof(IUnknown)){*ppv = s
..
我花了几天时间学习 Fortran 的 C 互操作性,以便从 C 调用 Fortran 函数 DLL.在这里我找到了这个链接:在 C 中使用 Fortran 代码 我尝试像这样创建一个 Fortran DLL,而我的编译器是 Intel Fortran 编译器: 模块集成隐式无包含函数积分(func,a,b,intsteps)结果(积分)!DEC$ 属性 DLLEXPORT :: 集成界面
..
我想转换 CString 转换成 char[].有人告诉我该怎么做? 我的代码是这样的: CString strCamIP1 = _T("");字符 g_acCameraip[16][17];strCamIP1 = theApp.GetProfileString(strSection, _T("IP1"), NULL);g_acCameraip[0] = strCamIP1; 解决方案
..
有人知道如何将 BSTR 转换为 char* 吗? 更新:我试过这样做,但不知道是对还是错. char *p= _com_util::ConvertBSTRToString(URL->bstrVal);strcpy(testDest,p); 解决方案 你的代码没问题.ConvertBSTRToString 确实只是.至于 strcpy,testDest 需要足够大以容纳 p 指向的字符
..
我的应用程序是一个基于 VC6 MFC 对话框的应用程序,具有多个属性页. 我必须在控件上捕获 mousemove 事件,例如 Checkbox. 如何在 MFC 中的复选框上捕获 mousemove 事件? 解决方案 感谢您的回复.我找到了为我的应用获取 mousemove 事件的方法. WM_SETCURSOR windows 消息获取鼠标移动.它返回控件和对话框的
..
CDialog 和 CDialogEx 有什么区别?我决定使用 CDialog,因为如果 Dlg 派生自 CDialogEx,我无法将 m_pMainWnd 分配给 Dlg. BOOL CPreparationApp::InitInstance(){MyClass2 Dlg;//派生自CDialogm_pMainWnd = &Dlg;Dlg.DoModal();返回真;} 不使用表单向导提供的
..
我正在阿拉伯语 Windows 中运行我的英语应用程序.它包含一个属性表 UI (MFC).一切似乎都很好(从左到右或 LTR),除了从右到左或 RTL 的按钮(确定、取消、应用和帮助).但是如何使按钮 LTR? 我玩过 MSDN 上提到的 PSH_RTLREADING 标志,但它只处理窗口标题,而不处理按钮. 此外,我注意到 这个讨论 但没有好的解决方案. 解决方案 由Ray
..
我正在创建一个使用 Qt 创建 GUI 的 C++ 应用程序.但是,我需要使用依赖于 MFC 的第三方库(用于 CString 等).有没有办法将 MFC 添加到我的应用程序中以允许我使用这个库,还是我需要自己重写它? 我看到这个问题,但它没有告诉我如何添加MFC 手动到项目中. 解决方案 如果库应用采用/返回/使用 CString,则需要与 MFC 库链接,或者 MFC 库已经静态
..
在 Visual Studio 2012 中创建最简单类型的新 MFC 应用程序并将其设置为静态链接到 MFC 时,链接失败. 这是从创建项目开始的7 个屏幕截图库通过向导,直到建筑物(导致链接器错误).中间没有进行源代码编辑. 错误日志状态: 1>------ 构建开始:项目:测试,配置:调试 Win32 ------1>stdafx.cpp1>测试Dlg.cpp1>测试.cpp1
..
使用 MFC 和 Visual Studio 2010 C++.我需要一种方法来突出 CListCtrl 的某些单独的行(但是我不想使用内置的选择功能来突出显示这些行).它可能是行背景的颜色,或字体粗细,甚至可能是图像(如果这是高性能的话). 理想情况下,我想知道如何使用库存列表控件来做到这一点.但是,如果这不可能,请告诉我使用 3rd 方代码的方法. 更新 这是我最终使用的代码
..
我正在使用 VC++ 开发一个使用网络驱动器访问文件的应用程序.驱动器由用户手动分配,然后在应用程序中选择驱动器.这会导致驱动器并不总是映射到相同的服务器. 如何获取此类文件的 UNC 路径?这主要用于识别目的. 解决方案 这是我用来将普通路径转换为 UNC 路径的函数: wstring ConvertToUNC(wstring sPath){WCHAR 温度;UNIVERSA
..
我一直在研究一个 Visual Studio C++ Windows 应用程序项目,它使用了两个函数 SetWindowExt (...) 和 SetViewportExt (...).我对这两个功能的作用以及为什么它们是必要的感到困惑.搜索这些函数,我想到了逻辑坐标和设备坐标的概念. 谁能解释一下这两个概念的重要性? 解决方案 设备坐标是最容易理解的.它们与您使用的设备直接相关,例
..
我使用 Visual C++ 2010 创建了一个带有功能区的 MFC 应用程序.我已向此功能区添加按钮,但我不知道如何向这些按钮添加图像.我尝试从项目中编辑 writelarge.bmp 文件,并在这些按钮上设置图像索引,但现在功能区图标看起来非常难看.除了从项目中编辑 writelarge.bmp 文件之外,是否有一种简单的方法可以将图标添加到功能区图像? 解决方案 您可以为每个 Ri
..
我有一个对话框,我想将它放在另一个对话框中,并相对于主对话框上的一个控件进行定位. void CspAceDlg::DrawResultsArea(){CWnd* pTabCtl = GetDlgItem(IDC_BUILDTABS);CRect rectTabCtl;//为控件的位置分配 CRect.pTabCtl->GetWindowRect(&rectTabCtl);int resX =
..
我刚刚尝试了将 CToolbar 添加到新 CMFCToolBar 上的对话框的标准方法.但它不起作用.在我进入新的实现之前,我想知道它是否真的可能? 解决方案 我不确定您所说的“标准方式"是什么意思,但您当然可以通过编程方式实现: //在 MyDlg.h 中类 CMyDlg:公共 CDialog{...CMFCToolBar m_ToolBar;...};//在 MyDlg.cpp 中
..
在 onkeydown() 处理程序中,我得到 219 作为 '[';但是,'[' 的实际字符值是 91.有没有办法映射这两个? 解决方案 如果您使用的是 Windows,您应该查看 ToUnicodeEx 函数.
..
如果我使用这样的 CString: void myFunc(char *str){CString s(str);//用 CString 操作其他数据//...//完成的//我应该以某种方式删除's'以避免内存泄漏吗?} 一旦函数超出范围,字符串是否会被删除? 另外,我知道 new 关键字分配内存,如果我构造一个没有 new 关键字的对象,内存仍然分配吗?我的直觉告诉我是的,但我想验证一下
..
我正在使用外部资源开发 MFC 应用程序. resource.h 文件已由其他开发人员手动编辑,我发现存在冲突的 ID. 我见过微软 TN020:ID 命名和编号约定. 我只是想知道控件和其他资源的 ID(不包括字符串)在整个应用程序中是否必须是唯一的,或者如果它们对于每个定义的对话框都是唯一的就足够了. 解决方案 同一个对话框中的两个控件必须有不同的ID(使用IDC_S
..
使用 Visual C++ MFC 复选框控件执行标准复选框操作的源代码是什么? 在显示的复选框控件中设置检查 清除显示的复选框控件中的复选标记 为用户输入启用显示的复选框控件 为用户输入禁用显示的复选框控件 解决方案 在 MFC 中控制复选框 以下是在 MFC 中选中、取消选中、启用和禁用复选框的方法: CButton* pBtn = (CButton*) GetD
..