Visual Studio 2017版本15.8.x运行某些程序会报这样的错误:“System.InvalidProgramException:公共语言运行时检测到无效程序” 此问题的临时解决方案: 1)删除vs2017\Team Tools\Performance Tools\Performance Tools目录中的vsinstr.exe,将vsinstr.legacy.exe重命名为vsinstr.exe. 2)删除vs2017\Team Tools\Performance Tools\P…
1.安装VS2015后,.NET Framework4.6会替换掉 C:\Windows\Microsoft.NET\Framework64\v4.0.30319 (如果使用的是windows7 64位版本)的文件,导致VS2013开发的项目在IIS中浏览都会出现如下错误: 2.折腾了很久,翻阅大量的搜索资料也无法解决,最后在IIS中设置应用池的“启用32位应用程序” 为true后,再打开站点,一切恢复正常了 留个几号,以备查阅!…
前言 关于混合C#和C++的编程方式,本人之前写过一篇博客(参见混合语言编程:C#使用原生的Directx和OpenGL),在之前的博客中,介绍了在C#的Winform和WPF下使用原生的Direct和OpenGL进行绘图,主要使用的方式是声明一个函数为导出函数,然后就可以在C#中使用这个函数. 存在的问题 之前的方式使C#调用C/C++成为可能,但是存在很多缺点,主要表现在以下几个方面: 使用extern "C" _declspec(dllexport)的声明方式只能定义C函数,无法…
项目属性 -> 配置属性 -> “常规”里开启“公共语言运行时支持(/clr)…
UI贴图在游戏中内存大小中占的分量非常非常大,尤其对于前期对UI没有规划的项目,无论是包量还是内存大小都是需要花费很多时间去优化.如果涉及到战斗场景和逻辑场景的情况下,常用的做法就是把两个场景使用的atlas严格的分离开,这样可以减少运行时内存,特别是在战斗中,内存增加的比较厉害.OK,如果项目前期这方面的事情考虑比较周全.规则比较详细.执行也比较到位,后期可能就做这个事情就比较简答.那如果出现战斗中引用不该有的atlas怎么办?UI太多的情况下,逐个排除太麻烦,尤其是不在UI中,只是静态引进的…
System类: System 类代表Java程序的运行平台,程序不能创建System类的对象, System类提供了一些类变量和类方法,允许直接通过 System 类来调用这些类变量和类方法. System 类提供了代表标准输入.标准输出和错误输出的类变量,并提供了一些静态方法用于访问环境变量.系统属性的方法,还提供了加载文件和动态链接库的方法. 获取操作系统环境变量System.getenv() package com.zmd.common_class_libraries; import j…
解决方案: 在app.config新增如下配置节: <?xml version="1.0"?> <configuration> <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0" sku = ".NETFramework,Version=v4.0"/> </…
Windows 运行时   编译器使用 COM 引用计数机制来确定对象是否不再使用并可以删除. 因为从 Windows 运行时接口派生的对象实际上是 COM 对象,所以这是可行的. 在创建或复制对象时,引用计数会递增:当对象设置为 null 或超出范围时,引用计数会递减. 如果引用计数归零,将立即自动删除对象. 句柄声明符的优点在于,在 COM 中,您必须以显式方式管理对象的引用计数,而这个过程单调乏味又容易出错. 也就是说,要递增或递减引用计数,必须调用对象的 AddRef() 和 Relea…
开发环境: vs2010+.net framework 4.0+ System.Data.SQLite.DLL (2.0)今天在做Sqlite数据库测试,一运行程序在一处方法调用时报出了一个异常 混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集 其调用的方法是从sqlite数据库中获取原来已经使用过的数据库连接,当时也没注意,就是准备设断点然后单步调试,结果竟然是断点无法进入方法体内,后来仔细看了一下方法体的时候发现了…
今天在把以前写的代码生成工具从原来的.NET3.5升级到.NET4.0,同时准备进一步完善,将程序集都更新后,一运行程序在一处方法调用时报出了一个异常: 混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集 其调用的方法是从sqlite数据库中获取原来已经使用过的数据库连接,当时也没注意,就是准备设断点然后单步调试,结果竟然是断点无法进入方法体内,后来仔细看了一下方法体的时候发现了一个问题,就是现有的System.Data…