[c++] short ISO6B_ReadLabelID(int *handle, void ** Buffer, int *nCounter);

csShooter 2007-12-27 09:31:53
C++写的一个API:
short ISO6B_ReadLabelID(int *handle, void ** Buffer, int *nCounter);

我用C#怎么定义这个void **:
我这么定义:
public static extern short ISO6B_ReadLabelID(IntPtr handle, ref IntPtr Buffer, ref int nCounter);



对不,兄弟们!!
...全文
94 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
csShooter 2007-12-28
  • 打赏
  • 举报
回复
厂家提供的API肯定是没问题的!
只是C#转换我不知道void ** 怎么处理!
wenbin 2007-12-28
  • 打赏
  • 举报
回复
你用VC做下测试,看看,
csShooter 2007-12-28
  • 打赏
  • 举报
回复
使用out IntPtr buffer,出现:

尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
csShooter 2007-12-28
  • 打赏
  • 举报
回复
感谢!
csShooter 2007-12-27
  • 打赏
  • 举报
回复

请不使用不安全代码usafe...
csShooter 2007-12-27
  • 打赏
  • 举报
回复
csShooter 2007-12-27
  • 打赏
  • 举报
回复


送给大家过元旦!
up 有分
csShooter 2007-12-27
  • 打赏
  • 举报
回复


byte[] buffer = new byte[10*8];

IntPtr p = Marshal.AllocCoTaskMem(buffer.Length);
Marshal.Copy(p, buffer, 0, buffer.Length);
_res = RfidReaderApi.ISO6B_ReadLabelID(handle, ref p, ref nCounter); //报错:尝试读取或写入受保护的内存。这通常指示其他内存已损坏。

Marshal.Copy(p, buffer, 0, buffer.Length);



这个错误怎么解决?
真相重于对错 2007-12-27
  • 打赏
  • 举报
回复
try
void ** Buffer==> out Ptr
csShooter 2007-12-27
  • 打赏
  • 举报
回复
师兄们,让人太寒心了!

课程名: 操作系统 地点: "姓名: "班级: "学号: "成绩 " "项目: 存储器管理实验 " "目的要求 " "一. 理解内存页面调度的机理 " "二. 掌握几种理论页面置换算法的实现方法 " "三. 了解 HASH 表数据结构的使用 " "四. 通过实验比较各种调度算法的优劣 " "一.Page.h 文件 " "#ifndef _PAGE_H " "#define _PAGE_H " "class cpage { " "public: " "int m_nPageNumber, " "m_nPageFaceNumber, " " " "m_nCounter, " "m_nTime; " "}; " "#endif " "二.Memory.h文件 " "#ifndef _MEMORY_H " "#define _MEMORY_H " "class CMemory{ " "public: " "CMemory(); " "void initialize(const int nTotal_pf); " "void FIFO(const int nTotal_pf); " "void LRU(const int nTotal_pf); " "void NUR(const int nTotal_pf); " "void OPT(const int nTotal_pf); " "private: " "vector _vDiscPages; " "vector _vMemoryPages; " "CPageControl *_pFreepf_head,*_pBusypf_head,*_pBusypf_tail; " "vector<int> _vMain,_vPage,_vOffset; " "int _nDiseffect; " "}; " "CMemory::CMemory():_vDiscPages(TOTAL_VP), " "_vMemoryPages(TOTAL_VP), " "_vMain(TOTAL_INSTRUCTION), " "_vPage(TOTAL_INSTRUCTION), " "_vOffset(TOTAL_INSTRUCTION) { " "int S,i,nRand; " "srand(getpid()*10); " "nRand=rand()%32767; " "S=(float)319*nRand/32767+1; " "for(i=0;ivoid CMemory::initialize(const int nTotal_pf) { " "int ix; " "_nDiseffect=0; " "for(ix=0;ix<_vDiscPages.size();ix++) { " "_vDiscPages[ix].m_nPageNumber=ix; " "_vDiscPages[ix].m_nPageFaceNumber=INVALID; " "_vDiscPages[ix].m_nCounter=0; " "_vDiscPages[ix].m_nTime=-1; " "} " "for(ix=1;ix

110,538

社区成员

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

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

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