首先我要说的是,我不想在两个项目上提供资源文件的副本(我已经看到了一个问题)。
使用Windows 7,MS VS 2013,C ++,MFC。
我将引用的这两个项目是同一解决方案的一部分。
我有一个用rc / h / cpp文件创建的对话框,它在一个项目中工作(项目A)。我希望能够从单独项目(项目B)中的例程打开该对话框。项目B有一个GUI按钮,点击后我希望从项目A中调出对话框。
我在项目B的属性中包含了对项目A的引用。
我在项目B的rc文件中包含了(#include)项目A的rc文件路径(它负责资源文件,资源文件的定义编号不重叠)。
我已将路径(从项目A)包含到控制项目B中对话框的类中(在包含用于调出对话框的事件处理程序的文件中)。
我的设置没有错误,它只是没有做任何事情。我创建对话框并尝试DoModal
就像我在项目A中的任何地方(它工作的地方)并没有任何反应,我可以多次点击按钮,它永远不会带来任何东西。
我无法提供任何关于此的代码,但我希望有足够的信息可以给我一些线索。我现在迷路了。谢谢。
例行程序:
#include "DialogIWant.h"
...
void OnPushButtonOnProjectB ()
{
CDialogIWant dialog; // CPP/H/RC in the other project A
dialog.DoModal(); // Nothing comes up
}
答案 0 :(得分:0)
资源文件可以像使用任何其他C ++文件一样使用#inclde
。将对话框资源放在单独的文件中,并将其包含在两个项目的.rc
文件中。
您还需要共享资源ID定义,通常位于resource.h
。