非托管DLL导出函数A、B,其中函数B使用了API:VirtualAlloc函数申请内存。
使用托管程序导入DLL,调用A函数时没有任何问题,而在调用B函数时无法正确执行。跟踪B函数发现在调用VirtualAlloc时返回NULL。
使用非托管程序调用此DLL的B函数进行测试,一切正常。
求解,急用
使用托管程序导入DLL,调用A函数时没有任何问题,而在调用B函数时无法正确执行。跟踪B函数发现在调用VirtualAlloc时返回NULL。
使用非托管程序调用此DLL的B函数进行测试,一切正常。
求解,急用
解决方案 »
- 求RichTextBox 详用。
- WinForm程序使用VS2008打包
- datagrideview 如何使光标停在一固定单元格
- c# 怎么写dll的问题
- 制作.net安装程序应该注意的问题
- winform datagrid中linkbutton的问题
- DataGrid中绑定了记录集。但未在DataGrid中显示所有字段,如何在代码中给相应字段添加值。
- C#中怎么使用Real Play Active control Library?
- 问一个关于OWC11 chart图表的x轴分类格式设置的问题。
- 请教异步BeginAcceptTcpClient后,系统会自动创建新线程嘛?
- 求教如何减少GetResponse()返回的资源量
- C#中如何使用JS处理两个submit的问题
出错的代码是VirtualAlloc( (PVOID)0x02070000, 0x20000, MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE )
完整的源码在:http://bbs.51cto.com/thread-911629-1.html,我是将其修改后编译为DLL并导出函数用的。使用c++编写的loader加载测试正常,使用c#的加载会失败。现在机子上没有可以直接编译为DLL的源码,只能给链接了,抱歉。
问过朋友他说可能是加载.net库之后0x02070000指向的内存会变成受保护的部分从而不能写入,由于说的模棱两可所以来坛子中请教各位。
另:测试环境是win2003,也只能在2003下测试。