loaderlock关闭后ps图层属性性就无法打开

6370人阅读
在用vs2005调试程序的时候,遇见一个异常信息为:正试图在 os 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码,这样做会导致应用程序挂起。(Attempting managed execution inside OS Loader lock. Do not attempt to run managed code inside a DllMain or image initialization function since doing so can cause the application to hang.)
网上资料:.Net2.0中增加了42种非常强大的调试助手(.NetFramework.Netframework/issuesBugBash.mspx?mfr=true" target=_blank&MDA,Loaderlock是其中之一。Loaderlock检测在一个拥有操作系统loader lock的线程上(如上例的muisc的运行线程)运行托管代码的情况。这样做有可能会引起死锁,并且有可能在操作系统加载器初始化DLL前被使用。虽然这样做很有必要,但在进行开发调试的时候,实在太麻烦。解决方案如下: 1.改注册表 在HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/.NetFramework下面增加一个String,值为"0" 不过这样做,在该计算机上所有基于.Net2.0开发都得不到MDA的好处。
&2.为项目增加一个配置文件.
3.直接修改项目设置 把vs2005菜单的 调试-&异常-&Managed Debuggin Assistants-&LoaderLock 的选中状态去掉即可。如果异常(exception)这一项没有的话,在工具---自定义---命令选项卡---左边选择调试--右边把异常托到菜单里就可以了。异常也有个快捷键Ctrl+Alt+E,修改Managed Debuggin Assistants-&LoaderLock 的选中状态去掉即可。
4直接按F5pass过去
一般的用第三种比较好些。
更多信息可以浏览一下几个网页:
版权声明:本文为博主原创文章,未经博主允许不得转载。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:90295次
积分:1056
积分:1056
排名:千里之外
原创:17篇
转载:14篇
评论:14条
(1)(1)(1)(1)(12)(4)(2)(3)(4)(2)文档分类:
在线文档经过高度压缩,下载原文更清晰。
淘豆网网友近日为您收集整理了关于二次开发常见问题解决方法的文档,希望对您的工作和学习有所帮助。以下是文档介绍:二次开发常见问题解决方法 二次开发常见问题1、启动 IMS 服务后日志里面空间分析服务报错或空间分析无法使用原因一:IMS 服务管理器中数据库配置问题空间分析要用到两个临时数据库,一个是 SpatialAnalyIMS,要存储到商用数据库中;一个是 IMSWEBGISGDB.HDF,存储到平台下的。(1)确定数据库 SpatialAnalyIMS 已经附加到 SQL 数据库中;IMSWEBGISGDB.HDF 附加到平台下;(2)如果是 SQL2005 的数据库,在 IMS 服务管理器中数据库配置中不要设置IP,设置数据库所在机器的计算机名称(这个是 SQL2005 数据库的问题)。原因二:IMS 服务管理器中矢量数据服务配置中没有勾选“启动空间分析服务”,勾选后要单击“保存”按钮,重启服务。2、配置网络数据源 SQL、ORACLE 失败原因:学习版不支持网络数据源解释:要理解 MapGIS 的数据存储,分为两种,一种是本地数据源,一种是网络数据源。本地数据源是以本地 HDF 文件方式存储网络数据源指的就是将空间数据存储在商用数据库里面。一般用本地数据源就行了。3、发布示例站点后,打开(来源:淘豆网[/p-.html])站点提示“无法远程连接服务器”原因一:矢量示例数据没有附加到平台中。没有附加请附加数据。原因二:IMS 的 GIS 服务未启动,或不能正常启动。要检查 IMS 服务发布数据后是否单击“保存”按钮,保存配置并启动服务。4、发布示例站点后,打开站点出现白图原因:如果使用的是 IE8,是浏览器兼容问题,更改 IE8 为兼容模式或者使用火狐等非 IE 内核的浏览器。5、发布示例站点后,打开站点提示 open 地图失败解决方法:重新注册下\MapGIS K9\Program 下的.bat、CheckWebFunction.dll6、使用平台一段时间后,打开平台发现无法使用,任何 MapGIS 的 exe 都无法打开原因:可能是 Beta 版包学习版注册问题1、打开注册表,将 HKEY_CURRENT_USER\Software\MapGis\LCCSYSTEM 下的NO_PROMPT 键值改为“0”;2、打开平台,会弹出一个注册的对话框,里面有注册码,(注意此时不要关闭该对话框);3、根据该注册码到 (来源:淘豆网[/p-.html])http:
的学习版注册模块注册,得要一个证书码;4、在之前弹出的对话框中入延长证书码后,再修改 NO_PROMPT 的键值为“1”,继续使用学习版证书。7、Flex 开发中——出现拖动控件后出错无法编译的情况原因:可能是开源二次开发库附加错了,也就是把 SDK 下的文件拷贝到 Flex 工程的 src 下(注意是 SDK 目录下所有的文件,不要把 SDK 目录拷贝过去)。1、发生错误:创建对象失败。解决方法:开始--所有程序--MapGIS7.3 二次开发大赛版软件--工具箱--注册组件。2、在 VS中添加MapGIS控件,调试运行时弹出对话框“托管调试助手LoaderLock ...导致应用程序挂起。”解决方法:(1)点击停止调试,然后点击“开始执行(不调试)”。( 2 ) 在&Debug& 菜单下----&Exceptions&----&Managed DebuggingAssistants&中勾掉&LoaderL(来源:淘豆网[/p-.html])ock&。3、添加 MapGIS 控件后,VS 中无法显示界面,错误提示“加载设计器时遇到一个或多个错误。这些错误在下面列出。一些错误可通过重新生成项目来修复,而另一些错误则需要更改代码”。解决方法:取消所有添加进 VS 的控件,然后重新加载:工具箱——选择项——com 组件。并在 VS 的解决方案资源管理器——你的项目名称——引用下,添加所用到的 MapGIS 控件 dll。若添加该组件后仍显示黄色感叹号,则该组件未注册,需在开始——运行中输入:regsvr32 “未注册的组件路径.dll”,注册成功后关闭VS 项目,重新打开运行。4、在 VS2005 中调试程序查看变量值时显示的不是十进制数值,怎么设置?解决方法:类似这种情况,右击,把 16 进制显示去掉就可以了。5、在 vs2005 环境的 web 编程中,我从 HTML 的源码视图返回的设计视图之下,为什么不显示控件,该怎么解觉?解决方法:在“我的电脑”中搜索&gdiplus.dll&,发现 Dream(来源:淘豆网[/p-.html])weaver,office,qq,flash 8.0,adobe photshop cs2 这些软件都调用了 gdiplus.dll,挑一个最新版本的(就是把鼠标放在搜索结果的项上,会显示版本号、创建日期,选一个版本号、创建日期最新的),copy 到C:\WINDOWS\\Framework\v2.0.50727 和 C:\ProgramFiles\Microsoft Visual Studio mon7\Packages 两个目录下,好了之后,操作如下:“开始”-“程序”-“Microsoft Visual Studio 2005”-“Visual Studio Tools”-“VisualStudio 2005 命令提示”,输入 devenv /ResetSkipPkgs,)。6、VS 中显示,类似于——无法加载引用“AxGISSYMBOLVIEWLib”的类型库。库没有注册。解决方法:首先点开始——所有程序——MapGIS 7.3 二次开发大赛版——工具箱——注册组件,重新运行 VS,(来源:淘豆网[/p-.html])若项目资源管理器中,引用下的类库仍然显示黄色感叹号, 则打开安装目录如:“ D:\MapGIS7.3\Program ”, 找到“GISSYMBOLVIEW.dll”(在 Program 文件夹中对应时去掉 Ax,dll 名类似与库名),并在开始——运行,中输入:regsvr32 然后将该 dll 拖入运行对话框,此时自动显示 regsvr32 “D:\MapGIS7.3\Program \GISSYMBOLVIEW.dll”,确定后再检查引用下的类库,黄色叹号不存在则正常。7、使用什么控件进行图属联动?RecordGird 怎么不可以?解决方法:加载 GisGridCtrl 而不是 RecordGird,使用 GisGridCtrl 的 selchanged 事件即可,操作方法为:联动分两步:第一步:根据鼠标在视图上点击查询得到 oid,然后在 gisgridctrl 中调用SetXClsRcd,gisgridctrl 会自动跳转到相应的记录上。void axMapXView1_OnLBu(来源:淘豆网[/p-.html])ttonDown(object sender,AxMapXView._IXViewEvents_OnLButtonDownEvent e){coordinate(e.x, e.y);//坐标转换,参照问题 8,将窗口坐标转换为地图坐标mc_basObj7Lib.mcRect m_Rect = new mc_basObj7Lib.mcRect();//创建矩形区域进行选择,也可创建多边形区域mc_basXcls7Lib.mcSelectSet m_SelectSet =//创建选择集,用于保存选择到的所有元素mc_basXcls7Lib.mcFeatureCls m_Fcls =//创建要素类m_Fcls =(mc_basXcls7Lib.mcFeatureCls)axMxWorkSpace1.ActiveMap.ActiveLayer.XCm_Rect.xmax = ;//这里仅作为示例,你可以使用框选的办法或者点击时以鼠标按下的点建立一个小矩形进行单一要素(来源:淘豆网[/p-.html])选择m_Rect.xmin =;m_Rect.ymax= ;m_Rect.ymin=;m_Fcls.RectSelect(m_Rect, out m_SelectSet, null, 0, 0, 0, 0);//要素类选择得到选择集m_SelectSet.fset.MoveFirst();//移动到选择集第一个元素for (int i = 0; i & m_SelectSet.fset.GetObjCount() - 1; i++){axGisGrid1.SetXClsRcd(m_Fcls, m_SelectSet.fset.GetObjID());//取到 oidaxMapXView1.AppendFlashItem(m_Fcls, m_SelectSet.fset.GetObjID(),MapXView.meFlashType.meXclsFID);axMapXView1.StartFlash();//闪烁m_SelectSet.fset.MoveNext();}}第二步:在 gi(来源:淘豆网[/p-.html])sgridctrl 中响应 SelChanged 事件,返回 ptOID,然后在视图上AppendFlashItem 添加闪烁图元,然后 StartFlash。void axGisGrid1_SelChanged(object sender,AxMC_GISGRIDCTRLLib._IGisGridEvents_SelChangedEvent e){//功能为点击 GisGrid,在地图上闪烁图元mc_basXcls7Lib.mcFeatureCls m_Fcls =//定义要素类,闪烁时则应加载要素类图层m_Fcls =(mc_basXcls7Lib.mcFeatureCls)axMxWorkSpace1.ActiveMap.ActiveLayer.XC// 取当前激活图层的要素类axMapXView1.AppendFlashItem(m_Fcls, (mc_basObj7Lib.mcObjectID)e.ptOID,MapXView.meFlashType.meXc(来源:淘豆网[/p-.html])lsFID);//加载闪烁项axMapXView1.StartFlash();//开始闪烁}8、如何进行坐标转换?重要概念:窗口坐标(Wp):以当前客户区左上角为坐标原点,横向向右为 X 轴正方向,纵向朝下为 Y 轴正方向设备坐标(Dp):以当前客户区左下角为坐标原点,横向向右为 X 轴正方向,纵向朝上为 Y 轴正方向逻辑坐标(Lp):当前地理数据所采用的用户坐标,如北京 54,西安 80 等坐标系地图坐标(Mp):当前地图数据所使用的坐标系!MapXView 的坐标为:画布范围的坐标,左上为角为(0,0)例子:获取当前显示地图过程中,鼠标移动时的地图坐标void axMapXView1_OnMouseMove(object sender,AxMapXView._IXViewEvents_OnMouseMoveEvent e){//为 axMapXView1 添加鼠标移动事件int x1 = 0, y1 = 0;double x2 = 0.0, y2 = 0.0;double x3 = 0.(来源:淘豆网[/p-.html])0, y3 = 0.0;x1 = e.x;y1 = e.y;mapXBase.IXT//坐标转换mapXBase.IXDaxMapXView1.BeginPaint(out dsp);//启动绘制,类似于 VC 绘图时的 GDIcood = dsp.Tcood.WpToLp(x1, y1, ref x2, ref y2);// 窗口坐标坐标转换逻辑坐标cood.LpToMp(x2, y2, ref x3, ref y3); //逻辑坐标坐标转换地图坐标toolStripStatusLabel1.Text = &坐标: & + x3.ToString() + &,& + y3.ToString();}9、二次开发常用控件及简要说明: 地图视图控件(MapXView):负责所有的基本显示功能,由 MapXView 取到 IXDisplay 接口,IXDisplay 接口进行坐标变换,显示要素类等操作等工作空间控件(MxWorkSpace):主要用于对数据以及资源进行管理,包括对包括打开、关闭、新建、保存工作空间文件(*.wks)、连接数据源、字体文件的载入,卸载、图形信息库文件的载入,卸载、三维场景的加载等编辑控件(MxEditorConnector):提供了对地图的基本的编辑功能的工具,如要素工具、空间分析工具、网络工具等,这些功能均已经完整封装提供,只需一句话调用即可实现。所提供的功能函数名称可以在注册表下的以下键值中查询 HKEY_CURRENT_USER\Software\MapGis\FrameWork70\grouptool,注册表“项”名称即为 axMxEditControl1.AddGroupTool(”参数1”,”参数 2”);参数 2 的名称,具体示例参见 MapGIS 安装路径\SDK\DEMO\C#中的示例编辑助手控件(MxEditAssistCtrl):提供了对选择集的各种操作,如选择集通过属性选择来获取、图元之间地跳转、选择集中数据的操作等地图文档树控件(MxDocTreeView):加载地图及图层拓扑错误列表控件(mxTopoErrorListCtrl):显示拓扑错误的控件,该控件可以把传入的拓扑错误以列表的方式显示出来属性视图控件(GisGrid):主要是对要素类,简单要素类的属性以及对象类进行显示,可以和 MapXView 联动,编辑属性大赛组委会播放器加载中,请稍候...
该用户其他文档
下载所得到的文件列表二次开发常见问题解决方法.doc
文档介绍:
二次开发常见问题解决方法 二次开发常见问题1、启动 IMS 服务后日志里面空间分析服务报错或空间分析无法使用原因一:IMS 服务管理器中数据库配置问题空间分析要用到两个临时数据库,一个是 SpatialAnalyIMS,要存储到商用数据库中;一个是 IMSWEBGISGDB.HDF,存储到平台下的。(1)确定数据库 SpatialAnalyIMS 已经附加到 SQL 数据...
内容来自淘豆网转载请标明出处.断电或强制退出后VMware虚拟机出现The&virtual&machine&appears&to&be&in&use无法启动问题解决
今天运行虚拟机时候出现死机的现象,强制关闭之后,原来的没有正常关闭的虚拟系统不能正常启动,上网查了一下问题解决。
&&&&&&&&解决办法:
到相应的虚拟机目录下删除%虚拟机名字%.vmx.lck文件夹或者其中的文件即可
我们打开任务管理器,会发现vmware.exe和vmware-vmx.exe两个重要的进程。其中vmware-vmx.exe是主程序,虚拟机在这个进程下运行;VMware.exe是外壳程序,负责显示vmware-vmx.exe中运行的虚拟系统并解释传送各种命令和操作,是我们最常用的VMware用户界面,该程序可重入即同时打开多个。
因为VMware
Workstation是可重入的,为了避免同一个虚拟系统同时被多个VMware.exe打开操作,造成错误,所以每个VMware打开相应的虚拟机选项卡时都会先检查该虚拟机根目录下是否有*.vmx.lck的文件夹并验证其中的文件,如果该文件中包含合法生成的uuid(通用唯一识别码),那么将无法打开该虚拟机的选项卡,并出现下面的错误提示:
&&&&&&&&&&&&&&&&&&&&&&&<img ALT="断电或强制退出后VMware虚拟机出现The virtual machine appears to be in use无法启动问题解决 - 孤行 - yanpingyu的博客" BORDER="0" src="/blog7style/images/common/sg_trans.gif" real_src ="http://img./photo/2rhXIpOi0VbYV1FC3AwFWw==/4941258.jpg" SMALL="0" STYLE="line-height: 22 border-top-width: 0 border-right-width: 0 border-bottom-width: 0 border-left-width: 0 border-style: border-color: max-width: 100%;"
TITLE="断电或强制退出后VMware虚拟机出现The&virtual&machine&appears&to&be&in&use无法启动问题解决" />
Take Ownership之后会出现以下提示:
&&&&&&&&&&&&&&&&&&&&&&&<img ALT="断电或强制退出后VMware虚拟机出现The virtual machine appears to be in use无法启动问题解决 - 孤行 - yanpingyu的博客" BORDER="0" src="/blog7style/images/common/sg_trans.gif" real_src ="http://img./photo/SrVd9W9eLCYHmPpIG5G3sQ==/4941260.jpg" SMALL="0" STYLE="line-height: 22 border-top-width: 0 border-right-width: 0 border-bottom-width: 0 border-left-width: 0 border-style: border-color: max-width: 100%;"
TITLE="断电或强制退出后VMware虚拟机出现The&virtual&machine&appears&to&be&in&use无法启动问题解决" />
如果没有相应的合法文件,就会在该虚拟机根目录下生成*.vmx.lck文件夹,并在该文件夹下生成一个包含uuid的*.lck文件,打开虚拟机选项卡,并从主程序接收显示信息。
这个*.lck文件可以用记事本编辑。里面是uuid={一串字母数字},uuid是通用唯一识别码 (Universally Unique
Identifier),它的特点就是唯一性。为的是同时只有一个vmware.exe能接受主程序的显示,并对虚拟机操作。lck是lock的缩写,即对请求资源的锁定。
虚拟机在运行时会在相应的虚拟机目录下生成三个文件*.vmx.lck,*.vmdk.lck,*.vmem.lck文件夹,里面包含以*.lck命名的文件。
其中的*.vmx.lck是伴随vmware.exe中选项卡的打开时生成的;另外两个是关于虚拟磁盘和内存的使用的,它们伴随着虚拟系统的运行而产生。如果关闭VMware.exe让虚拟机在后台运行,*.vmx.lck文件夹会消失另外两个则不会。
在VMware.exe中打开某个虚拟机选项卡时,会短暂生成*.vmsd.lck的文件夹,估计这个是在最初传送数据(send
data)时生成的,防止多个外壳程序同时请求打开虚拟机。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。7643人阅读
最近在网上下个了软件,在安装的时候提示是否覆盖系统文件,点确认后重起,发现系统出现很多问题。不得已,只好把它卸载了,但是每次启动的时候都弹出&无法定位程序输入点ldrlockloaderlock于动态链接库ntdll.dll上 。&是启动ctfmon.exe时候弹出来的。而且在启动其它一些程序时 也会弹出这个对话框,十分烦人。
开始怀疑是ntdll.dll文件被替换,于是运行sfc /scannow进行系统文件恢复。
完了后,还是不见效。
于是去baidu上搜索了半天,发现很多人都碰到了这样的问题,但是都没有提出比较有效的解决办法。后来去google上搜索,发现老外也碰到过。有怀疑是ntdll.dll文件的问题的,有怀疑是ctfmon.exe有问题的。有些人甚至重装系统才解决。
不过这些文章给了我些启示。那就是让我确认应该是和ctfmon.exe有关系,于是找了下ctfmon.exe相关的资料。
进程文件: ctfmon 或者 ctfmon.exe 进程名称: Alternative User Input Services 描述: ctfmon.exe是Microsoft Office产品套装的一部分。它可以选择用户文字输入程序,和微软Office XP语言条。这不是纯粹的系统程序,但是如果终止它,可能会导致不可知的问题。 出品者: Microsoft Corp. 属于: Microsoft Office Suite
他可能会导致以下几种情况的发生: 1. 无论你打开什么窗口,总会弹出一个输入法工具体,并且默认是中文输入,非常讨厌。2. 它替换了原来的区域和输入法设置,并以一个文字服务的设置取而代之,而且不能设置默认的输入法。3. 结束掉原来的输入法工具进程internat.exe,并令他不能在开机时起动。4. 将自己放在开机时启动的程序列表中,除非修改注册表,否则无法去除。5. 像病毒一样有重生能力,当你把ctfmon.exe删了以后,他又会随着Office的启动而重新生成。6. 当你结束了ctfmon.exe后,经常会出现输入法切换快捷键乱掉的情况。
如果你真的想让这个程序彻底消失,那么我给你提供一个网络上流传的方法,这个方法我没有试过,不过我看了以后感觉应该没有什么问题,不过我希望你还是仔细斟酌,方法如下:
第一步:右击任务栏空白处,点&任务管理器&。 第二步:找到ctfmon.exe,并终止它。 第三步:在系统目录下的system32目录下找到ctfmon.exe,删除掉。 第四步:写一个最简单的api程序(代码见附录),编译后放到ctfmon.exe所在目录,并更名为ctfmon.exe。
第五步:点击&开始&菜单,点击&运行&,输入internat.exe后点击确定。 第六步:重起计算机。
执行完毕!
附: 1. 程序代码如下: #include windows.h int APIENTRY WinMain( HINSTANCE, HINSTANCE, LPTSTR, int ) { HANDLE m_hMutex = CreateMutex( NULL, TRUE, ctfmon.exe ); if( GetLastError() != ERROR_ALREADY_EXISTS ) while ( 1 ) Sleep( INFINITE ); return 0; }
外国的讨论时大多建议如下:
Probably a bad or mismatched DLL causing this. Try this:1. Unregister msctf.dll using the command &Regsvr32 /u msctf.dll&.2. Rename both msctf.dll and ctfmon.exe to .old extensions.3. Reinstall or repair Office.
于是想到应该是msctf.dll的问题了。就去其它电脑上拷贝了msctf.dll和ctfmon.exe过来覆盖掉本机上的同名文件。然后再重新注册一下msctf.dll&
regsvr32 /u msctf.dll
regsvr32 /i msctf.dll
再试着运行ctfmon.exe,没有弹出错误;再运行其它刚才弹出错误的程序,也没有问题!
哈哈,搞定!所以估计应该是msctf.dll文件造成的错误!
版权声明:本文为博主原创文章,未经博主允许不得转载。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:47559次
排名:千里之外
原创:26篇
评论:14条
(1)(2)(2)(1)(4)(2)(1)(2)(3)(1)(4)(9)(2)(1)

我要回帖

更多关于 ae复制图层属性 的文章

 

随机推荐