“LRecordWave.WaveAPIFun”不可访问,因为它受保护级别限制

yangyi_33855 2012-02-16 11:09:11
今天编程的时候,出现了标题所示的问题,但是我WaveAPIFun类以前运行的时候从来没出过错的啊。
下面是这个类的全部代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
namespace LRecordWave
{
internal class WaveAPIFun
{
// consts 地址常量
public const int MMSYSERR_NOERROR = 0; // no error 表示无异常的地址

public const int MM_WIM_DATA = 0x3C0;

public const int CALLBACK_FUNCTION = 0x00030000;


public delegate void WaveDelegate(IntPtr hdrvr,int uMsg,int dwUser,ref WaveHdr wavhdr,int dwParam2);

[StructLayout(LayoutKind.Sequential)]
public struct WaveHdr//结构体,指定波形文件结构
{
public IntPtr lpData; // pointer to locked data buffer 指针,用于指定数据缓冲区
public int dwBufferLength; // length of data buffer 数据缓冲区的长度
public int dwBytesRecorded; // used for input only
public IntPtr dwUser; // for client's use
public int dwFlags; // assorted flags (see defines)
public int dwLoops; // loop control counter
public IntPtr lpNext; // PWaveHdr, reserved for driver
public int reserved; // reserved for driver
}
private const string mmdll="winmm.dll";

//录音时,所需用到的winmm.dll中的API函数
[DllImport(mmdll)]
public static extern int waveInPrepareHeader(IntPtr hWaveIn, ref WaveHdr lpWaveInHdr, int uSize);
[DllImport(mmdll)]
public static extern int waveInUnprepareHeader(IntPtr hWaveIn, ref WaveHdr lpWaveInHdr, int uSize);
[DllImport(mmdll)]
public static extern int waveInAddBuffer(IntPtr hwi, ref WaveHdr pwh, int cbwh);
[DllImport(mmdll)]
public static extern int waveInGetNumDevs();
[DllImport(mmdll)]
public static extern int waveInOpen(out IntPtr phwi, int uDeviceID, WaveFormat lpFormat, WaveDelegate dwCallback, int dwInstance, int dwFlags);
[DllImport(mmdll)]
public static extern int waveInStart(IntPtr hwi);
[DllImport(mmdll)]
public static extern int waveInReset(IntPtr hwi);
[DllImport(mmdll)]
public static extern int waveInClose(IntPtr hwi);
}

出错的位置是:
private WaveAPIFun.WaveHdr m_Header;//引用结构体,用来存放暂存数据的地址
internal static void WaveInProc(IntPtr hdrvr, int uMsg,
int dwUser, ref WaveAPIFun.WaveHdr wavhdr, int dwParam2)
{^^^^^^^^^}等地方,

求教高手,这是什么原因呢,是不是API函数配置出问题了?
...全文
242 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
内容概要:本文聚焦2026年高教社杯全国大学生数学建模竞赛B题“无线电干扰源的快速自动定位与清除”,提供涵盖数学建模、算法实现与论文撰写的全套技术支持,并扩展分享多个科研方向的Matlab/Simulink仿真项目,如无人机协同路径规划、电力系统无功优化、信号处理、图像处理、车间调度、新能源预测与优化调度等。资源内容不仅服务于竞赛备赛,还覆盖智能优化、通信定位、边缘计算、雷达追踪、深度学习等多个前沿科研领域,旨在为参赛学生与初级科研人员提供系统化、高质量的技术参考与资源共享。文中强调科研需逻辑严密、善于借力,并倡导按目录系统学习以提升建模能力与科研素养,所有资料可通过指定网盘链接或微信公众号免费获取。; 适合人群:全国大学生数学建模竞赛参赛者,具备Matlab编程与数学建模基础的本科及研究生,以及从事智能优化、信号处理、电力系统、路径规划、机器学习等方向的初级科研人员。; 使用场景及目标:①备战数学建模竞赛,快速掌握赛题解题思路、算法模型与论文写作模板;②开展科研项目时复现经典算法、借鉴成熟仿真方法,提升研究效率;③系统学习多领域(如无人机路径规划、微电网优化、光伏/风电预测、图像处理)的Matlab/Simulink实现技术。; 阅读建议:建议读者按照资源目录顺序系统浏览,结合网盘中的代码与文档进行实践操作,重点关注建模逻辑、算法实现细节与仿真结果分析,同时关注公众号与共享链接以获取完整资料,全面提升竞赛竞争力与科研实践能力。
下载代码方式:https://pan.quark.cn/s/0636d5a2cd63 爱普生1390型宽幅照片打印机是一款备摄影发烧友及小型设计机构欢迎的经典设备。经过一段时间的持续运作,其供纸辊可能会遭遇磨损或积聚灰尘,进而干扰打印机的正常运作,例如在打印过程中出现纸张移动或卡住等情况。本指南将系统性地阐述对爱普生1390进行拆解并更换供纸辊的具体操作方法。 1. **前期准备** 在着手拆解之前,务必要将打印机关闭并切断电源供应。需要准备一套适配的小型螺丝刀及辅助工具,同时备齐全新的供纸辊。采购供纸辊时,必须核实其与爱普生1390型号完全兼容。 2. **外部拆解** 开始移除打印机的外壳部件。通常情况下,这涉及到松开底部和背面的固定螺栓。在分离外壳时需格外谨慎,以免拉扯到机内部署的电线或线缆。 3. **曝露供纸部件** 继续对内部结构进行拆解,直至定位到供纸辊组件。这个过程可能需要取下墨盒托架、进纸模块等零件。务必记住各个部件的原始位置和朝向,以便后续顺利复原。 4. **拆卸供纸辊** 供纸辊一般通过轴心固定于打印机内部。借助螺丝刀或其他适宜工具松开固定轴,随后轻轻转动或抽离供纸辊。操作过程中需留意避免损伤周边的塑料构件。 5. **清洁或调换供纸辊** 若供纸辊仅因污损,可用柔软布料蘸取少量酒精进行轻柔擦拭,以去除附着物和尘埃。倘若供纸辊已出现损耗,则必须更换为新的。新供纸辊应依照原样安装,确保轴心与齿轮系统精确对接。 6. **重新组装** 依照与拆解相反的顺序,小心地将各个部件逐一装回,确保每部分都准确对齐并牢固固定。特别要注意连接线缆,防止其发生扭曲或过度弯曲。 7. **功能测试** 组装完毕后,重新接入电源,启动打印机,检验其是否能正常...

111,129

社区成员

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

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

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