最新源码无法运行的原因:
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运行时来运行程序。