各位高手,急旧呀,有关ATL调用用用用用用用用用用用用用用用 写好的ATL控件,如何在VC中调用,当然了,只能用他一个DLL文件,也就是说当你拿到一个人家写好的ATL控件后,只有一个DLL,你在ASP中很容易调用,可是在VC调用中,控制台程序如何写, 在MFC中又如何调用,在DELPHI在又如何写,和一般的控件好象不一样呀,,唉,前题是只有一个DLL,用REGSVR32 普通注册成ACTIVEX控件后如何用??????这问题困了我很久了,那位高手能给个例子! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 控制台一般用智能指针#import "asdf.dll" 查关节字 智能型指针+ATL。不过是用COM方式调用的,你写的是控件就需要一个OLE CONTAINER.就要用图形界面了。图形界面推荐你用WTL7,跟ATL关系最密切,我也不太会MFC. ///////////////////////////////////////////////////////////////////////Use WSH/////////////////////////////////////////////////////////////////////#import "WSHom.Ocx" named_guidsusing namespace IWshRuntimeLibrary;void main(){ CoInitialize(NULL);IWshShell *pShell;HRESULT hr=CoCreateInstance(__uuidof(IWshShell_Class), NULL,CLSCTX_INPROC, IID_IWshShell, (void **)&pShell); if(hr!=S_OK) { MessageBox(0," CoCreateInstance failed","error",MB_OK); return; } VARIANT varTime,varTitle,varType; varTime.vt=VT_I4; varTime.intVal=10; int nButton; BSTR bstrText; VariantInit(&varTitle); varTitle.vt = VT_ERROR; varTitle.scode = (long)DISP_E_PARAMNOTFOUND; VariantInit(&varType); varType.vt = VT_ERROR; varType.scode = (long)DISP_E_PARAMNOTFOUND; bstrText=SysAllocString(L"hello"); //ScopeGuard sg=MakeObjGuard(*pShell,&IWshShell::Release); pShell->Popup(bstrText,&varTime,&varTitle,&varType); //sg.Dismiss(); pShell->Release(); SysFreeString(bstrText); CoUninitialize();} #include <iostream>#import "scrrun.dll" raw_interfaces_only int main(){ CoInitialize(NULL); { try { Scripting::IFileSystem3Ptr fs; fs.CreateInstance(__uuidof(Scripting::FileSystemObject)); Scripting::IFolderPtr folder; fs->GetFolder(_bstr_t("c:\\temp"),&folder); _variant_t vsize;folder->get_Size(&vsize); std::cout<<"c:\\temp size:"<<(long)vsize<<" bytes"<<std::endl; } catch(_com_error &e) { _bstr_t bstrSource(e.Source()); _bstr_t bstrDescription(e.Description()); std::cout<<"Get directory size via FileSystemObject, by masterz"<<std::endl; std::cout<<"COM error occurred,source:"<<(LPCTSTR)bstrSource<<std::endl; std::cout<<"Description:"<<(LPCTSTR)bstrDescription<<std::endl; } } CoUninitialize(); return 0;} 调试经验【非求教,纯共享】 ws2_32.dll 怎么替换掉 请问vc2008中的两个问题:类向导、表格控件 可以在派生自CPropertySheet的类上加工具拦吗? 用过InstallShield请进,如何在InstallShield中制作反安装程序。(100相送) 求《Windows 图形编程》,请问哪里有下载?? 有关FindWindow的用法 VC++中模拟C++Builder的事件委托模型(Share) 手势识别 在win2000下好象不用dll就可以做到全局的键盘钩子 提一个很简单的问题:怎么把一个图标加入到工具栏里???? 指点!
图形界面推荐你用WTL7,跟ATL关系最密切,我也不太会MFC.
//Use WSH
/////////////////////////////////////////////////////////////////////
#import "WSHom.Ocx" named_guids
using namespace IWshRuntimeLibrary;
void main()
{
CoInitialize(NULL);
IWshShell *pShell;
HRESULT hr=CoCreateInstance(__uuidof(IWshShell_Class), NULL,CLSCTX_INPROC, IID_IWshShell, (void **)&pShell);
if(hr!=S_OK)
{
MessageBox(0," CoCreateInstance failed","error",MB_OK);
return;
}
VARIANT varTime,varTitle,varType;
varTime.vt=VT_I4;
varTime.intVal=10;
int nButton;
BSTR bstrText;
VariantInit(&varTitle);
varTitle.vt = VT_ERROR;
varTitle.scode = (long)DISP_E_PARAMNOTFOUND;
VariantInit(&varType);
varType.vt = VT_ERROR;
varType.scode = (long)DISP_E_PARAMNOTFOUND;
bstrText=SysAllocString(L"hello");
//ScopeGuard sg=MakeObjGuard(*pShell,&IWshShell::Release);
pShell->Popup(bstrText,&varTime,&varTitle,&varType);
//sg.Dismiss();
pShell->Release();
SysFreeString(bstrText);
CoUninitialize();
}
#import "scrrun.dll" raw_interfaces_only
int main()
{
CoInitialize(NULL);
{
try
{
Scripting::IFileSystem3Ptr fs;
fs.CreateInstance(__uuidof(Scripting::FileSystemObject));
Scripting::IFolderPtr folder;
fs->GetFolder(_bstr_t("c:\\temp"),&folder);
_variant_t vsize;folder->get_Size(&vsize);
std::cout<<"c:\\temp size:"<<(long)vsize<<" bytes"<<std::endl;
}
catch(_com_error &e)
{
_bstr_t bstrSource(e.Source());
_bstr_t bstrDescription(e.Description());
std::cout<<"Get directory size via FileSystemObject, by masterz"<<std::endl;
std::cout<<"COM error occurred,source:"<<(LPCTSTR)bstrSource<<std::endl;
std::cout<<"Description:"<<(LPCTSTR)bstrDescription<<std::endl;
}
}
CoUninitialize();
return 0;
}