5职业源码的问题

下载lib.gz时,也截图。好对比今后有没有更新。看看源码里的所需文件
最新源码无法运行的原因:
1,  客户端错误提示
MirGraphics文件下的MLibrary.cs
System.Windows.Forms.MessageBox.Show("Wrong version, expecting lib version: " + LibVersion.ToString() + " found version: " + CurrentVersion.ToString() + ".", _fileName, System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error, System.Windows.Forms.MessageBoxDefaultButton.Button1);


Wrong version,expecting lib version:
【解决】把MirGraphics。MLibrary  的 public const int LibVersion = 2;改为1


2,客户端黑屏解决办
 【解决】 client.exe和client.config一起复制到client下(client.config不能少)。


3,  directX问题---新版本会包异常(好像与旧版本的directX用的不是一个版本)
【解决试试】记得第一次下载了一个directX的包。里面有许多引用。


下面是错误
private static void Application_Idle(object sender, EventArgs e)
        
{
            
try
           
 {
             
   while (AppStillIdle)
            
    {
                   
 UpdateTime();


 UpdateEnviroment();
   
 RenderEnvironment();
  
              }


        
    }
        
    catch (Exception ex)
   
     {
                SaveError(ex.ToString());
            }
  
}


{"“Client.MirGraphics.DXManager”的类型初始值设定项引发异常。"}
{"未能加载文件或程序集“Microsoft.DirectX.DirectSound.dll”或它的某一个依赖项。 不是有效的 Win32 应用程序。 (异常来自 HRESULT:0x800700C1)"}
“Client.MirGraphics.DXManager”的类型初始值设定项引发异常。






MirObjects  DrawPoison()   1.1.2.4版本里有这个方法




旧5职业  的   MirObjects  没有 DrawPoison() 




  DXManager.Sprite.Draw2D(DXManager.PoisonDotBackground, Point.Empty, 0, new PointF((int)(DisplayRectangle.X + 7 + (poisoncount * 3)), (int)(DisplayRectangle.Y - 21)), Color.Black);  
C:\Windows\Microsoft.NET\DirectX for Managed Code\1.0.2910.0\Microsoft.DirectX.Direct3DX.dll     只有5和7个以上的参数。










-----------------------------------------------------------------------------------------------------------------------------------------------------------------------


=========LIB文件用于并不一定用于静态连接,也可用于动态连接,但其加载方式一定是【隐式】的,不用你调用LoadLibrary()来加载动态库==================




下载的源码,都是.net4.5  framework的。是英文的。改成大于4.5的就行了。  4.51是中文的
源码里的少的文件需要下载。   
 ExtraDataPath = @".\Data\Extra\",      //无
 ShadersPath = @".\Data\Shaders\",      //无
   GatePath = @".\Data\Gate\",            //无
  PetsPath = @".\Data\Pet\",  //无


-----------DirectX3D入门教程,包括教程以及事例代码-Direct3D------------
还有directx教程。里面的【目标平台】86平台。否则无法运行。










---------------------------------------------------------------------------------------------




版本 1.0.2902.0
Microsoft.DirectX
Microsoft.DirectX.Direct3D
Microsoft.DirectX.Direct3DX
Microsoft.DirectX.DirectSound




C:\Windows\Microsoft.NET\DirectX for Managed Code\1.0.2902.0\Microsoft.DirectX.dll


C:\Windows\Microsoft.NET\DirectX for Managed Code\1.0.2902.0\Microsoft.DirectX.Direct3D.dll






将 map  sound  data  复制到源码的F:\mir2-master\Client   下。就可以调试了














C++中LIB文件如何在C#中调用?
lib文件要保证是静态LIB
即你创建工程的时候选的是Win32 Static Library(静态链接库)
我不明白你为什么不直接创建一个动态链接库(dll)
这样调用就直接多了 
难道你没有源代码?
追问:
你好,我用的是C#,别人用的C++写的接口驱动要让我调用,所以求助,是新手,有问题了再请教,多谢!






-----------------------------------------------对未能加载文件或程序集“Microsoft.DirectX.DirectSound.dll”或它的某一个依赖项。 不是有效的 Win32 应用程序。----------------------------

useLegacyV2RuntimeActivationPolicy="true"  




修改App.config文件。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup useLegacyV2RuntimeActivationPolicy="true"> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
    </startup>
</configuration>
















加app.config配置文件!
放在项目的根目录下面,配置文件内容为:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v2.0.50727"/>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>
</configuration>












C# DX编程:未能加载文件或程序集"Microsoft.DirectX.DirectSound.dll"或它的某一个依赖项?
将应用程序生成为Any CPU就可以了 
反之,如果系统是64位的Win7,就应该将新项目的生成目标平台改为x86 。








.net2.0的DirectX.dll和Directsound.dll怎么使用在.net4.0上。
1.引用Microsoft.DirectX.dll和Microsoft.DirectX.Directsound.dll这2个文件。
2.项目属性里边,把目标平台改成X86。
3.调试菜单-->异常。把Managed Debugging Assistants里的LoaderLock引发的异常去掉。
4.App.Config修改下:
<?xml version="1.0"?>
<configuration>
    <startup useLegacyV2RuntimeActivationPolicy="true">         
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>
</configuration>
startup配置节中的useLegacyV2RuntimeActivationPolicy属性是在.NET4.0中新增的,默认是false,表示:使用默认的 .NET Framework 4 激活策略,该激活策略将加载 .NET Framework 4 通过使用公共语言运行时 (CLR) 版本 4 所创建的程序集,以及 CLR 早期版本通过使用受支持的低于版本 4 的最高 CLR 版本所创建的程序集。  
现在如果当程序在.NET4.0环境下要使用.NET2.0及.NET3.5的程序时就必须将useLegacyV2RuntimeActivationPolicy设置为true,同时还要注意,需要在startup配置节的字节中添加supportedRuntime配置节,并指定为"v4.0",表示使用.NET4.0运行时来运行程序。











  



















































  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值