在ocx中创建管道失败,creatfile返回值为5,访问失败。如何解决?

xcw_pet xcw_pet 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我先用mfc做了一个demo创建 命名管道是可以的。 代码移植到ActiveX 里面做成ocx就出问题了。
查了一下是creatfile失败。 返回值为5.
以下是代码。有经验的朋友帮我看看。

ActiveXCtrl.cpp

HANDLE hPipe;
LPTSTR lpszPipename = _T("\\\\.\\pipe\\MyPipe");

while (1)
{
hPipe = CreateFile(
lpszPipename, // pipe name
GENERIC_READ | GENERIC_WRITE, // read and write access

FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE, // no sharing
NULL, // default security attributes
OPEN_EXISTING, // opens existing pipe
0, // default attributes
NULL); // no template file


// 查看错误返回值
LPVOID lpMsgBuf;
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &lpMsgBuf,
0,
NULL
);

//返回值
CString ii;
ii.Format(_T("%d"),GetLastError());
AfxMessageBox(ii);
//返回值代码
MessageBox( (LPCTSTR)lpMsgBuf);
LocalFree( lpMsgBuf );


if (hPipe != INVALID_HANDLE_VALUE)
break;

// Exit if an error other than ERROR_PIPE_BUSY occurs.
if (GetLastError() != ERROR_PIPE_BUSY)
{
if (!WaitNamedPipe(lpszPipename, 20000))
{
//printf("Could not open pipe");
//system("pause");
strResult=_T("数据管道拥挤打开失败");
return strResult;
}
}

}

// The pipe connected; change to message-read mode.

dwMode = PIPE_READMODE_MESSAGE;
fSuccess = SetNamedPipeHandleState(
hPipe, // pipe handle
&dwMode, // new pipe mode
NULL, // don't set maximum bytes
NULL); // don't set maximum time
if (!fSuccess)
{
//printf("SetNamedPipeHandleState failed");
//system("pause");
strResult=_T("数据参数传输失败");
return strResult;
}
...全文

相关推荐

政府科技管理者如何提升区域科技成果转化成功率?.docx

政府科技管理者如何提升区域科技成果转化成功率?

BIZKEEN

LangGraph与Graphviz集成:生成高质量静态图

内容概要:展示如何将LangGraph图导出为Graphviz DOT格式,生成PNG/SVG。通过自定义布局和样式,呈现清晰的流程图。对比Mermaid,讨论适用场景。 0533zbyy.com 0595ty.cn www.zh-casting.com yobest2.com 10cd.cn

2601_96960507

科技中介服务机构如何通过智能化工具快速识别高价值技术成果?.docx

科技中介服务机构如何通过智能化工具快速识别高价值技术成果?

BIZKEEN

基于静止坐标系解耦控制的电压源换流器有功无功动态性能仿真复现研究(Simulink仿真实现)

内容概要:本文围绕“基于静止坐标系解耦控制的电压源换流器有功无功动态性能仿真复现研究”展开,利用Simulink搭建完整的电力电子系统仿真模型,深入复现并分析电压源换流器(VSC)在静止αβ坐标系下的有功与无功功率独立控制策略。研究重点在于通过设计电流闭环控制器实现功率解耦,结合αβ坐标变换、功率反馈计算与解耦补偿环节,有效抑制有功与无功分量之间的动态耦合效应,提升系统在负载突变、电网扰动等非理想工况下的动态响应性能与运行稳定性。文章详细阐述了控制器结构设计、参数整定方法及仿真验证流程,通过动态波形分析验证了解耦控制策略的有效性,为新能源并网、微电网及柔性输电系统中换流器的高性能控制提供了可复现的技术路径与理论支撑。; 适合人群:具备电力电子、自动控制及电力系统基础知识,从事新能源发电、微电网控制、柔性直流输电等方向的研究生、科研人员及电力电子领域工程技术人员。; 使用场景及目标:① 掌握电压源换流器在静止坐标系下的建模与控制实现方法;② 深入理解有功无功功率解耦控制的原理与关键技术;③ 获取可用于科研复现、课程设计或工程预研的Simulink仿真模型与参数设计依据; 阅读建议:建议结合Simulink仿真模型同步操作,重点关注电流环控制器设计、解耦项补偿机制及动态响应波形分析,可进一步拓展至不同控制带宽、参数失配及多工况扰动下的对比研究,深化对系统稳定性和鲁棒性的理解。

李锦科研

前端开发基于history.js的HTML5与HTML4浏览器兼容方案:单页应用无刷新历史状态管理技术实现-aOyBwNOK61792504621

内容概要:本文系统介绍了如何利用history.js实现单页应用(SPA)在HTML5c与HTML4浏览器间s草错发的无缝历史状态管理。通过封装原生History API并在不支持的浏览器中自动降级为哈希路由,history.js解决了因浏览器兼容性导致的后退按钮失效、URL混乱等问题。文章详细讲解了其核心机制,包括状态对象管理、自动模式切换(HTML5 pushState vs HTML4 哈希)、状态数据持久化以及针,对Safari、IE等浏\览器的兼容性修复方案,并提供了从入门到实战的完整示例,涵盖初始化、事,件监听、页面加载及性能优化技巧。;aOyBwNOK61792504621 tiantiankanqiua.com.cn tiantiankanqiub.com.cn tiantiankanqiud.com.cn tiantiankanqiuc.com.cn tiantiankanqiue.com.cn

2601_97196185
评论 9
收藏 已收藏
分享
返回顶部
xcw_pet
ATL 3,248 成员 48,530 内容