在线= 急.大侠们帮下忙 ,刚从ASP.NET转到WINAPP ....C#中引用C++的DLL 访问的内存受保护...

ken_flash 2008-07-07 10:37:18
这是C++中的函数
其中sPnt结构体,enPTIVflag枚举已在C#中定义过了

VOID WINAPI PaintInView(
//sPnt pntTypeArray[],
//int arrSize,
//CDC *pDC,
//int rcWidth,
//int rcHeight,
//double central_x,
//double central_y,
//int level=0,
//enPTIVflag ptivflag=PTIV_R2PSMP);


C#中的的定义
[DllImport("TQSDEModule.dll")]
public extern static void PaintInView(
sPnt[] pntTypeArray,
int arrSize,
IntPtr pDC,
int rcWidth,
int rcHeight,
double central_x,
double central_y,
int level,
enumPTIVflag ptivflag);

在程序中调用时直接说访问的内存受保护
PaintInView(
pntArray,
pntArray.Length,
new IntPtr()//这里出错可能性很大...
1,
1,
13,
123,
1,
enumPTIV.NONE);
...全文
147 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ken_flash 2008-07-07
  • 打赏
  • 举报
回复
顶下


下午要出去了。。。


忙碌的周一呀。。。。


那个GDI+初始化的问题大家也帮忙搞下,真的谢谢了。

想要分的可以到ASP。NET论坛,那里我分多。。。
ken_flash 2008-07-07
  • 打赏
  • 举报
回复
/// <summary>
/// 图层控制结构体定义,PaintInView第一个参数是结构体数组
/// </summary>
public struct sPnt
{
public enumShangHaiVecType ishType;//原C++中用INT定义的,在这里我封装了下用了个枚举
public bool bPaint;
public char szFilter;

public sPnt(enumShangHaiVecType _ishType, bool _bPaint, char _szFilter)
{
this.ishType = _ishType;
this.bPaint = _bPaint;
this.szFilter = _szFilter;
}
}


PaintInView第一个参数定义
#region 控制各图层的显示与隐藏
public static sPnt[] tmpsPnt = new sPnt[]{
new sPnt(enumShangHaiVecType.TILE_IMAGE,true,'\0'),
new sPnt(enumShangHaiVecType.VEC_SH_ROAD,true,'\0')};
#endregion
ken_flash 2008-07-07
  • 打赏
  • 举报
回复
C#中的的定义
[DllImport("TQSDEModule.dll")]
public extern static void PaintInView(
sPnt[] pntTypeArray, //结构体数组
int arrSize,
IntPtr pDC, //CDC类指针CDC *pDC
int rcWidth,
int rcHeight,
double central_x,
double central_y,
int level,
enumPTIVflag ptivflag); //枚举类型


个人觉得这三处出错可能性最大,能不能通过什么办法测出来
先生王 2008-07-07
  • 打赏
  • 举报
回复
关注
ken_flash 2008-07-07
  • 打赏
  • 举报
回复
另外在C++中可以直接初始化GDI+
GDIPlusStartUp(&XX,&XX,null)

我在C#中怎么 搞呢
Graphics g = Graphics.FromHwnd(this.Handle)??
ericzhangbo1982111 2008-07-07
  • 打赏
  • 举报
回复
IntPtr.Zero
ken_flash 2008-07-07
  • 打赏
  • 举报
回复
维护回来再顶顶。。。。这类问题网上资料看了很多但还是没搞定。。

110,915

社区成员

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

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

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