小编Ted*_*Ted的帖子

C#编译为32/64位,或任何cpu益智游戏

这个问题与之前关于SO的问题有关

任何CPU问题1任何CPU问题2

我有一个应用程序,最初是使用Visual Studio 2005在Win XP上构建的(不要笑!).这个应用程序调用我们的win32 C++ DLL.调用C++ dll的C#组件是使用"Any CPU"配置构建的,并且很乐意在Win XP上运行,没有任何问题.

我们现在转向Win 7,我们的应用程序的发布版本(使用VC 2005构建在Win XP上)运行良好.然而,随着win 7向我们的用户推出,我们现在已经采取了机会转移到VS 2010并且我已经使用VC 2010在win 7上构建了C#组件,但是现在运行这个版本时我得到很多"无法加载abc. dll"其中abc.dll是我们的win32 c ++组件.

我知道用x86配置重新编译C#程序集将解决问题,但我不明白的是,使用Win-XP/Visual studio 2005(任何CPU配置)构建的发行版c#程序集如何能够在Win 7上运行任何问题?当然,这些使用"任何CPU"构建的C#程序集在Win 7中加载时应该JIT到64位代码并导致BadImageFormatException或其他错误,因为它们调用Win32 C++ dll.


更新:我在下面的评论中提供了更多信息.

  1. 在我的Windows 7机器上,我右键单击我的计算机并查看属性.系统信息显示"系统类型:64位操作系统",确认这是一个Win64操作系统.

  2. 在Windows XP上打开VC2005中的解决方案在查看解决方案的配置管理器时,我可以确认所有 C#项目都是平台类型"任何CPU".

  3. 在64位Win 7机器上运行发布版本(在VC2005/win xp上完成)时,我的任务管理器将图像名称显示为"Test.exe*32",这确认它是jit'd并加载到32位进程中.

c#

10
推荐指数
1
解决办法
3420
查看次数

MASM .DATA怎么样?内部指导工作

在Kip Irvines的书中,我发现了以下内容:

数据?指令声明未初始化的数据.在定义大块未初始化数据时,.DATA?指令减少了编译程序的大小.例如,以下代码被有效声明:

.数据?

bigArray DWORD 5000 DUP(?); 20,000字节,未初始化

另一方面,下面的代码生成一个大于 20,000字节的编译程序:

.数据

bigArray DWORD 5000 DUP(?); 20,000字节

究竟是什么.data?在上面的例子中做引导下的指令使程序变小了20k.

assembly masm32

3
推荐指数
1
解决办法
2982
查看次数

C#代表引擎问题

在SO中阅读以下问题后,我正在研究代理方差:Delegate.CreateDelegate()和泛型:绑定到目标方法的错误

我在Barry kelly找到了一段非常好的代码, 网址是https://www.blogger.com/comment.g?blogID=8184237816669520763&postID=2109708553230166434

这是(以加糖形式:-)

using System;

namespace ConsoleApplication4
{
    internal class Base
    {
    }

    internal class Derived : Base
    {
    }

    internal delegate void baseClassDelegate(Base b);

    internal delegate void derivedClassDelegate(Derived d);


    internal class App
    {
        private static void Foo1(Base b)
        {
            Console.WriteLine("Foo 1");
        }

        private static void Foo2(Derived b)
        {
            Console.WriteLine("Foo 2");
        }

        private static T CastDelegate<T>(Delegate src)
            where T : class
        {
            return (T) (object) Delegate.CreateDelegate(
                                    typeof (T),
                                    src.Target,
                                    src.Method,
                                    true); // throw on fail …
Run Code Online (Sandbox Code Playgroud)

c# delegates generic-variance

2
推荐指数
1
解决办法
585
查看次数

标签 统计

c# ×2

assembly ×1

delegates ×1

generic-variance ×1

masm32 ×1