在C#中调用API函数出错的问题

haizhu 2004-01-16 02:23:49
[DllImport("User32.dll")]
public static extern IntPtr CreateDesktop(string lpszDesktop,string lpszDevice,object pDevmode,int dwFlags, long dwDesiredAccess, ref SECURITY_ATTRIBUTES lpsa);

[StructLayout(System.Runtime.InteropServices.LayoutKind.Sequential)]
public struct SECURITY_ATTRIBUTES
{
public int nLength;
public object lpSecurityDescriptor;
public int bInheritHandle;
}
...

SECURITY_ATTRIBUTES s;
s.nLength = Marshal.SizeOf(s);
s.lpSecurityDescriptor = new object();
s.bInheritHandle = 1;
...

string str1 = "@%@";
string str2 = "%@&*";
object o = new object();
CreateDesktop(str1,str2,o,0, 0x10000000L, ref s);

提示错误:未能将对象引用设置对对象实例.我怎么也没找到空引用..不知错在哪里.

另外,API中的SwithDesktop,CloseDesktop函数究竟是干什么用的?网吧管理软件中的虚拟桌面是用这类API做的吗?

Thanks in Advance!!
...全文
121 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
jimh 2004-01-17
  • 打赏
  • 举报
回复
[StructLayout(System.Runtime.InteropServices.LayoutKind.Sequential)]
public struct SECURITY_ATTRIBUTES
{
public int nLength;
public object lpSecurityDescriptor;
public int bInheritHandle;
}
上面定义有问题,在结构里不可能有object的定义,应该是一个Int类型的指针吧
haizhu 2004-01-17
  • 打赏
  • 举报
回复
怎么没人理会

是问题太简单了,不值得一答?

求大家帮忙了...
msexpert 2004-01-17
  • 打赏
  • 举报
回复
The second and third parameters passed into CreateDesktop() should be NULL. You should call CreateDesktop(str1,null,null,0, 0x10000000L, ref s) in you code.
haizhu 2004-01-16
  • 打赏
  • 举报
回复
没人理?

UP...
haizhu 2004-01-16
  • 打赏
  • 举报
回复
朋友们,帮帮忙吧...看似很简单的问题...

haizhu 2004-01-16
  • 打赏
  • 举报
回复
名空间,DLL引用都添加了..

如果不添加,编译是通不过的...会提示:找不到..是否缺少对*DLL的引用?



现在可以编译..就是在运行时,执行到CreateDesktop函数时出现空引用的异常,感兴趣的朋友,

把代码粘到IDE中试一下....
lyhold 2004-01-16
  • 打赏
  • 举报
回复
应该是命名空间没应用。加入dll的引用啦吗。
haizhu 2004-01-16
  • 打赏
  • 举报
回复
UP....帮帮忙吧....
haizhu 2004-01-16
  • 打赏
  • 举报
回复
是啊,问题就出在 对CreateDesktop(str1,str2,o,0, 0x10000000L, ref s);的调用..

一执行到这句,就会产生空引用的异常,,又查不到..

这个参数其实都不存在在空引用的...问题出在哪呢?

Thanks in Advance!!!!!
haiwangstar 2004-01-16
  • 打赏
  • 举报
回复
引用名空间了.

问题就出在 CreateDesktop(str1,str2,o,0, 0x10000000L, ref s);
这句上...
giardino 2004-01-16
  • 打赏
  • 举报
回复
using System.Runtime.InteropServices;
了么?
haiwangstar 2004-01-16
  • 打赏
  • 举报
回复
UP
内容概要:本文系统研究了基于CNN-SVM的卷积神经网络与支持向量机融合的数据分类预测方法,聚焦其在工业故障识别的应用,提供了完整的Matlab代码实现。通过CNN提取输入数据的深层空间特征,再由SVM进行高精度分类,充分发挥两者优势,有效提升了故障识别的准确性、鲁棒性与泛化能力。该方法特别适用于处理电力系统、机械设备等领域的高维、非线性、强噪声监测数据,在变压器故障诊断、轴承缺陷识别等场景具有重要应用价值。文档还整合了机器学习、深度学习、图像处理、路径规划、电力系统优化等多个前沿科研方向的技术资源,配套大量Matlab/Simulink仿真案例与Python代码,全面支持科研复现与工程实践。; 适合人群:具备一定编程基础,熟练掌握Matlab或Python语言,从事电气工程、自动化、人工智能、机械故障诊断等相关领域研究的研发人员及高校研究生; 使用场景及目标:① 实现工业设备的状态监测与多类别故障分类;② 深入理解CNN与SVM融合模型的设计原理与工程实现细节;③ 借助所提供的丰富算法案例开展科研复现、模型优化与系统仿真验证; 阅读建议:建议按照文档目录结构系统化学习,结合百度网盘提供的完整代码资源进行动手实践,重点关注CNN特征提取层与SVM分类器之间的数据接口设计与参数调优策略,同时可延伸学习文涉及的其他智能算法及其在电力系统、信号处理等领域的交叉应用,全面提升科研创新能力。

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧