- 博客(186)
- 资源 (5)
- 问答 (1)
- 收藏
- 关注
原创 MFC多线程学习笔记四:线程间的同步
MFC 提供的多线程类分为两类:同步对象(和)和同步访问对象(和必须控制对资源的访问权限以确保资源的完整性时,使用同步类。同步访问类用于获取对这些受控资源的访问权限。要使类完全线程安全,请先将适当的同步类作为数据成员添加到共享类。在先前的帐户管理示例中,CSemaphore数据成员添加到视图类中,数据成员添加到链接列表类中,CEvent数据成员添加到数据存储类中。接下来,向修改类中的数据或访问受控资源的所有成员函数添加同步调用。在每个函数中,应创建或对象,并调用该对象的Lock函数。
2025-11-23 10:33:14
626
原创 MFC多线程学习笔记三:线程间的通信
1)定义一个自定义消息。在头文件中自定义消息、声明消息处理函数。在CPP文件中,映射消息,定义消息处理函数。2)在一个函数中调用::PostMessage()向另一个线程发送自定义消息。
2025-11-22 17:02:02
809
原创 MFC多线程学习笔记二:线程控制
指向工作线程的控制函数,不能为NULL。函数声明如下从CWinThread派生的对象的RUNTIME_CLASSpParam要传递给控制函数的参数,桶pfnThreadProc中函数的形参。nPriority优先级,见nStackSize指定新线程堆栈的大小(以字节为单位)。如果为0,则堆栈大小默认为与创建线程相同大小的堆栈。指定控制线程创建的附加标志。以1的挂起计数启动线程。
2025-11-22 14:24:08
968
原创 MFC多线程学习笔记一:用户界面线程和工作线程
MFC 应用程序中的所有线程都由对象表示。在大多数情况下,你甚至不必显式创建这些对象;而是调用框架帮助程序函数,该函数会为你创建CWinThread对象。MFC 区分两种类型的线程:用户界面线程和工作线程。用户界面线程通常用于处理用户输入并响应用户生成的事件和消息。工作线程通常用于完成无需用户输入的任务。MFC 通过为用户界面中的事件提供消息泵,专门处理用户界面线程。CWinApp是用户界面线程对象的一个示例,因为它派生自CWinThread并处理用户生成的事件和消息。应用程序由一个或多个进程组成。
2025-11-22 11:38:07
622
原创 MFC 打印学习笔记
存储有关打印或打印预览作业的信息。 是一个结构,没有基类。每次选择“打印”或“打印预览”命令时,框架都会创建一个 对象,并在命令完成后将其销毁。 包含有关整个打印作业的信息(如要打印的页面范围),以及打印作业的当前状态(如当前正在打印的页面)。 某些信息存储在关联的 CPrintDialog 对象中;此对象包含用户在“打印”对话框中输入的值。在打印过程中, 对象在框架和视图类之间传递,用于在两者之间交换信息。 例如,框架通过向 的 成员赋值来通知视图类要打印文档的哪个页面;视图类检索值并执行指定页面的
2025-11-22 08:36:34
973
原创 C++ 学习笔记 名称
用于设备环境内的区域操作,通常和CDC类中与剪裁(clipping)有关的成员函数配合使用。4)保存窗口剪切区域(Clipping Region),限制程序输出到输出设备中窗口覆盖的区域。CClientDC:代表窗口客户区的设备环境,一般在响应非窗口消息并对客户区域绘图时要用到该类。CPalette:调色板,包含系统可用的色彩信息,是应用程序和彩色输出设备环境的借口。CWindowDC:代表整个窗口的设备环境,包括客户区和非客户区。CDC:所有设备环境的基类,对GDI的所有绘图函数进行了封装。
2025-11-22 08:34:41
779
原创 动态链接编程 学习笔记
在DLL库文件的头文件中使用extern "C" 申明在cpp文件中实现在def文件中声明二、使用关键字__declspec(dllexport)导出函数在DLL库文件的头文件中使用extern "C" 申明在cpp文件中实现三、使用关键字__declspec(dllexport)导出类 在DLL库文件的头文件中使用extern "C" 申明在cpp文件中实现使用动态链接库项目新建项目隐式链接又称静态加载,需要DLL和LIB文件。在程序退出前,D
2025-11-21 23:28:42
249
原创 C++ 类的学习(四) 继承
只能通过基类的非private函数成员(public、protect)才能访问。派生类不继承基类的构造函数、析构函数和赋值运算符,但他们仍存在于基类中。基类中的private数据成员,派生类中的成员函数不能访问。类的protect成员只能被类的成员函数和友元函数访问。基类的protect成员可以被派生类的函数成员访问。基类的构造总是先于派生类。
2025-10-26 20:04:16
185
原创 C++ 类的学习(二)
会发现cbox1.m_pMeaasge 和 cbox2.m_pMeaasge都会变成 "Cbox2"会复制 cbox1.m_pMeaasge指针地址 到 cbox2.m_pMeaasge。CBox* cbox2{ new CBox {"cbox2" }}: 构造函数1调用。CBox cbox1{ "cbox1"}: 构造函数1调用cbox1。CBox cbox1{ "cbox1"}: 构造函数1调用cbox1。CBox cbox1{ "cbox1"}: 构造函数1调用。
2025-10-26 14:10:47
200
原创 C++ 类的学习(一)
类的静态函数成员可以通过实例化的类(cbox1.count)或类类型(CBox::count)调用。*(double*)(addr + 8*1) 和 *(double*)(addr + 8*2)CBox cbox3 { 5.0 }: 构造函数1调用 构造函数2调用。CBox cbox2{ 10, 20, 30 }: 构造函数1调用。声明为const的对象,其this指针也是也是const。addr + 8 访问m_Width: 20。addr 访问m_Length: 10。形参用引用避免复制实参。
2025-10-25 17:05:38
329
原创 通过 C++/WinRT 实现高级并发和异步
例如 Windows::UI::Core::CoreDispatcher、Windows::System::DispatcherQueue 或 Microsoft::UI::Dispatching::DispatcherQueue。然后,你可以回到协同程序所在的位置,在应用程序中完成异步的或基于消息的工作流。wait_for 在接口上使用 std::chrono::duration,但它有一个受限范围,该范围小于 std::chrono::duration 提供的值(大约为 49.7 天)。
2024-01-14 16:28:32
1744
原创 使用 C++/WinRT 执行并发和异步操作
co_await为了简单起见,本介绍主题中的大多数代码示例演示了项目。本主题中后面的代码示例使用协同例程,但为方便起见,控制台应用程序示例还会在退出前继续使用阻止性的函数调用,这样应用程序就不会在显示其输出之前退出。不要通过 UI 线程这样做(调用阻止性的函数), 而应使用co_await语句。主题介绍了将要在 UI 应用程序中使用的技术。本简介性主题介绍了可通过创建和使用 Windows 运行时异步对象的部分方式。阅读本主题后,如需其他技术,尤其是将要在 UI 应用程序中使用的技术,另请参阅。
2024-01-14 15:45:12
1361
原创 使用 C++/WinRT 的集合
在内部,Windows 运行时集合具有大量复杂的移动部件。但要将集合对象传递到 Windows 运行时函数,或要实现自己的集合属性和集合类型时,中有函数和基类可以提供支持。这些功能消除复杂性,并节省大量时间和精力上的开销。是由元素的任意随机访问集合实现的 Windows 运行时接口。如果要自己实现 IVector,还需要实现和。即使需要自定义的集合类型,也需要做大量工作。
2024-01-14 14:59:50
1365
原创 通过 C++/WinRT 使用 API
Windows::Security::Cryptography::Certificates 中的类型需要父 Windows::Security::Cryptography 命名空间中的类型;该命名空间中的类型可能需要其自己的父 Windows::Security 中的类型。在有了 C++/WinRT 投影类型值后,你可以将其视为实际 Windows 运行时类型的实例,因为它具有所有相同的成员。当你希望实际使用 在无关命名空间中声明的类型(实例化、调用方法等)时,你必须包括该类型的相应的命名空间标头文件。
2024-01-13 21:29:16
1534
原创 通过 C++/WinRT 将值装箱到 IInspectable 和对其取消装箱
不仅可对标量值进行装箱和取消装箱,。是 Windows 运行时 (WinRT) 中每个运行时类的根接口。这类似于位于每个 COM 接口和类的根处的;而且类似于位于每个类的根处的 System.Object。换言之,可向任何运行时类的实例传递需要 IInspectable 的函数。但是你无法将标量值(如数值或文本值)直接传递到此类函数,也不能直接传递数组。相反,标量或数组值需要封装到引用类对象内。该封装过程称为对值进行装箱。
2024-01-13 20:39:05
1143
原创 标准 C++ 数据类型和 C++/WinRT
借助,可以使用标准 C++ 数据类型(包括某些 C++ 标准库数据类型)调用 Windows 运行时 API。可以将标准字符串传递到 API(请参阅),还可以将初始值列表和标准容器传递到 API,这些 API 需要语义上等价的集合。
2024-01-13 20:16:02
1264
原创 C++/WinRT 中的字符串处理
利用,你可以使用 C++ 标准库宽字符串类型(如 std::wstring)调用 Windows 运行时 API注:不要使用窄字符串类型,例如 std::stringC++/WinRT 确实有名为的自定义字符串类型(在 C++/WinRT 基础库中定义)。这是 Windows 运行时构造函数、函数和属性实际上采用并返回的字符串类型。但在很多情况下(由于 hstring 的转换构造函数和转换运算符),你可以选择是否要注意客户端代码中的 hstring。
2024-01-13 19:59:23
1207
1
原创 C++/WinRT 简介
在 C++/WinRT 编程中,你可以使用标准 C++ 语言功能以及标准 C++ 数据类型和 C++/WinRT,包括一些 C++ 标准库数据类型。但你还会在投影中发现一些自定义数据类型,并且可以选择使用它们。例如,我们使用C++/WinRT 入门中快速入门代码示例中的。是你可能在某个时间使用的另一个类型。但你不太可能直接使用之类的类型。或者,你可以选择不使用它,这样就可以在等效类型出现在 C++ 标准库中时不用更改任何代码。警告。
2024-01-13 14:52:10
1756
原创 C++/WinRT
是 Windows 运行时 (WinRT) API 的完全标准新式 C++17 语言投影,以基于标头文件的库的形式实现,旨在为你提供对新式 Windows API 的一流访问。利用 C++/WinRT,你可以采用任何符合标准的 C++17 编译器创作和使用 Windows 运行时 API。这包括神奇静态变量、空基类、若要通过 C++ 创作和使用 Windows API,可使用 C++/WinRT。删除以及最新版本的 Visual C++ 中的很多专门用于改善 C++/WinRT 的性能的更新的优化。
2024-01-13 13:26:24
744
原创 类型特质和静态断言
可以转换为布尔值的整型常量表达式。如果计算出的表达式为零 (false),则显示参数,并且编译失败,并出现错误。如果表达式不为零 (true),则 static_assert声明无效。当参数为零时显示的消息。该消息是编译器的中的一个字符串;即,不是。注解声明的参数表示软件断言。软件断言指定在程序的某个特定点应满足的条件。如果条件为 true,则 static_assert声明无效。如果条件为 false,则断言失败,编译器在参数中显示消息,并且编译失败,出现错误。
2024-01-11 19:56:48
414
原创 Task Add-in Sample (C#)
对EdmCmdType.EdmCmd_TaskSetup、EdmCmd_TaskSetupButton、EdmCmd_TaskRun、EdmCmd_TaskDetails进行处理。任务 -> 任务列表 -> 选择任务 -> 选择细节,消息类型为EdmCmdType.EdmCmd_TaskDetails 这一步不清楚为什么有时候触发不了函数。注意: 若要填充下面的 GUID 属性,请在 IDE 中单击“工具”>“创建 GUID”,选择“用复制的字符串替换 [Guid("")]。
2023-06-11 14:46:37
1177
原创 Calling Add-ins (C#)
去创建一个当用户在数据卡中点击一个按钮时被调用的Visual C# add-in程序。这个add-in在用户浏览文件时打开一个对话框. add-in 将所选文件的路径复制到 文件的数据卡。通过检查包含 IEdmStrLst5 文件接口的 EdmCmdData::mpoExtra 变量来检索文件中配置(configurations)、布局(layouts)或两者的数量。在按钮通过将 EdmCmdData::mlLongData1变量设置为 EdmCardFlag 常量后,自动关闭数据卡。,生成Add-in。
2023-06-09 20:58:37
1096
原创 Creating Serial Numbers (C#)
它们提供了比Add-ins生成的序列号或文件序列号更好的性能。仅当内置格式字符串或列表不足时,才编写Add-ins以生成序列号。SOLIDWORKS PDM Professional无法强制重新加载用.NET编写的Add-ins,必须重新启动所有客户端计算机,以确保使用Add-ins的最新版本。选择卡-> 文件卡 -> Text Card,选择Title后面的Textbox,在右侧窗口选择序列号,我的序列号,保存数据卡。此示例展示如何使用Visual C#编写的Add-ins为文件数据卡生成序列号。
2023-06-09 18:52:20
1097
原创 Creating Add-in Hooks (C#)
因为 SOLIDWORKS PDM Professional 无法强制重新加载Add-in程序 ,必须重新启动所有客户端计算机,以确保使用最新Add-in程序。本文介绍如何使一个文件在添加、检入、检出到库时,让add-in 程序在SOLIDWORKS PDM Professional 中通知到你。PostAdd:拖进去,新建。安装生成的Add-in。PostLock:检出。,生成Add-in。
2023-06-08 21:56:24
723
Creating Serial Numbers C# @ solidworks PDM
2023-06-09
Solidwoks.DllOfAPI.2019sp5.rar
2020-04-28
SOLIDWORKS API SDK 2019 SP5.rar
2020-04-28
nmodbus.3.0.58
2019-03-02
Solidworks 二次开发换了系统或换电脑报错,找不到原因。
2022-06-05
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅