作为我工作的一部分,我必须将用c编写的固件部分移植到用c#编写的gui软件中。所以,我必须将c代码转换为c#。我可以原样使用c代码并从gui调用它,但是这里的人决定移植而不是使用c文件。
当我通过代码时,我发现了类似的内容:
static xdata x y;
然后经过一些研究发现xdata说芯片将这个变量存储在外部存储器中。现在的问题是如何在c#中编写该行。
感谢大家和这个精彩的社区。 p>
答案 0 :(得分:3)
删除它。 xdata
只是编译器的一个提示,用于存储变量的位置。如果删除它,C#编译器就会自行解决它。
答案 1 :(得分:2)
考虑将C代码移植到.NET C ++ DLL而不是C#。这应该最小化您的移植问题。可以通过空宏有效删除xdata
关键字。
在C ++项目的头文件中使用以下内容:
#define xdata
C#GUI项目可以轻松引用.NET C ++ DLL。
答案 2 :(得分:2)
你的问题遗漏了很多细节。当我看到“我必须将用c语言编写的固件部分移植到用c#编写的gui软件中”时,我会假设移植的“部件”与硬件无关。但是,可能情况并非如此,您使用的是.NET Micro Framework。您是要在某种形式的嵌入式CLR上运行C#代码,还是严格要在PC上运行?如果它只是在完整的Windows .NET平台上运行。如果是后者那么你可以忽略xdata限定符,因为C#没有模拟它。