Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 让导入的.h在x86和x64中工作_C#_C++ - Fatal编程技术网

C# 让导入的.h在x86和x64中工作

C# 让导入的.h在x86和x64中工作,c#,c++,C#,C++,我有一个外部生成的.h文件,其中包括我需要在C#代码中引用的枚举和字符串 为了“解决”这个问题,我创建了一个C++/CLI项目,将信息封装在一个可以从C#访问的类中。这对我来说很好(运行Windows7-32位) 一切都进行得很顺利,直到有人试图在x64上运行它,他遇到了一个异常 在external.h中有一行阻止我生成/clr:safe: static const char* const NiFpga_M_OTRM_OVDFPGA_Signature = "C2BF591011B5C7046A

我有一个外部生成的.h文件,其中包括我需要在C#代码中引用的枚举和字符串

为了“解决”这个问题,我创建了一个C++/CLI项目,将信息封装在一个可以从C#访问的类中。这对我来说很好(运行Windows7-32位)

一切都进行得很顺利,直到有人试图在x64上运行它,他遇到了一个异常

在external.h中有一行阻止我生成/clr:safe:

static const char* const NiFpga_M_OTRM_OVDFPGA_Signature = "C2BF591011B5C7046AB3528D7EFEFC72";
如果只是这样,一切都会好起来:

#define NiFpga_M_OTRM_OVDFPGA_Signature = "C2BF591011B5C7046AB3528D7EFEFC72";
阿格! 该应用程序需要在64位和32位Windows 7上构建和运行


任何建议(允许我保留.h文件不变)。

32位程序在Windows 64位上使用WoW64运行良好。您真的需要构建64位版本吗?这是一个实时应用程序,我们关心的是将其限制为仅32位。我们希望为将来迁移到x64做好准备。大多数代码构建为“任意CPU”,在任何一种平台上都可以正常运行。它只是需要使用C++/CLI导入.h文件中的地址映射信息,这会设置限制。您真正需要的已经在这里得到了回答:这里:我知道我可以创建单独的32和64个项目构建,然后根据平台动态加载正确的项目构建。我希望有人有一个创造性的方法来处理字符串,因为这是我唯一的问题。我正在考虑一个预编译步骤来修改.h文件;但是,这似乎有点“创造性”。