在C#中使用遗留资源dll

时间:2010-01-13 19:02:26

标签: c# c++ dll resources legacy

我在新的c#app中使用遗留的,非托管的,仅限资源的c ++ dll。我已设法使用硬编码资源编号从dll加载资源。

有没有办法在C#中使用资源ID?

旧的C ++代码仍在维护,这意味着资源ID /值可能会发生变化。这可能会使c#代码中的资源编号不正确/无效。

我能想到的最好的方法是将resource.h文件剪切/粘贴到c#类中,然后进行一些手动搜索/替换以将其格式化为c#类。必须在每次更改资源文件后执行此操作。还有更好的方法吗?

2 个答案:

答案 0 :(得分:0)

我猜你不是在问如何加载这些资源,而是如何保持ID号同步?

如果是这种情况,我建议有2个头文件,其中定义了资源ID。就像你现在做的那样,使用resource.h做一些你不介意修改Wizards的东西,但是引入你手动编辑的第二个头文件(例如appresource.h)。这样,您可以确保该文件中的ID永远不会更改。然后,只有当您添加要使用的新资源时,才需要更改C#应用程序。

答案 1 :(得分:0)

如果您没有维护资源dll,我会考虑编写一个脚本/工具来执行您所说的内容,但会自动执行(尽可能)。