2009-07-15 67 views
2

我正在用托管和非托管类编写混合C++/CLI DLL。两者都需要访问字符串和其他类型的资源,如Direct3D纹理。将资源添加到Visual C++/CLI混合DLL

如何最好地将它们嵌入到DLL中?似乎有几种方法可以做到这一点; .resx(新风格,托管),.rc(旧风格),可用于生成.resources文件和(可选)嵌入程序集中。

目前我使用.rc文件和:: LoadString()来获取我的字符串。我有一个托管包装为此将String ^值返回到托管代码。还有一种将WCHAR *返回本地代码的类似方法。

有没有更好的方法来做到这一点?什么是权衡?例如,我可以使用.resx文件,ResourceManager类用于托管代码,.rc用于native,但这意味着我无法共享资源等。是否有推荐的方法?

感谢,

阿德

回答

1

我只是用的.resx,如果有任何字符串中的原生代码需要我用设法得到的东西从我的.resx文件,并将其转换成一个CString上下一行。

虽然你已经有一个包装要做到这一点,因此会更容易。

.rc文件是如此1997年的男人!

+2

'rc'文件适用于本地应用程序。他们都还好。晶体管是从1947年,但他们仍然没问题。 – 2009-07-15 16:31:41

+0

我同意。但是,如果我可以选择使用1947晶体管,2009晶体管,或两者兼而有之(我的设备尺寸加倍),我会使用2009年的晶体管。 – demoncodemonkey 2009-07-16 14:03:20