描述:
VC中调用一个.dll的组件,采用动态编译方式,但是发现每次修改组件中的内容(不改变接口)都必须重新编译一下主程序,这样的话就没有达到使用dll的目的了。
在StdAfx中使用#import加入dll文件,然后在需要调用组件的地方添加如下代码:
//-------------------------------初始化COM控件-------------------------
CoInitialize(NULL);
hresult=CLSIDFromProgID(OLESTR("JOENSU.JECPDAS"), &clsid);
hresult=CoCreateInstance(clsid,NULL,CLSCTX_INPROC_SERVER,__uuidof(_JECPDAS),(LPVOID *) &pJECPDAS);
if(FAILED(hresult))
{
AfxMessageBox("初始化服务组件失败");
return ;
}
//------------------------------------------------------------------------------
请教一下我该如何才能动态的调用组件,便于今后升级组件啊?
解决方案1:
我也不知道你为什么会出现这样的问题,是在不行的话你可以用loadlibrary和 GetProcAddress来使用这个dll,这样连你的stdafx中的import都不用了。至于怎么用那两个还是可以看msdn或者在网上找找。
解决方案2:在主菜单的工程菜单下面
解决方案3:你去掉主程序对DLL工程的依赖关系就行了