• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > 懂com的人过来看一下

懂com的人过来看一下

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了966615 com你懂的,22eee.com你最懂的,368752点com你懂的,zv321 com你懂的,365.yeyetu.com你懂勒等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 懂com的人过来看一下
描述:

我想把函数暴露出来,做成了api. 创建的是win32 DLL工程,编译环境vc6.0:
#define DllExport   __declspec( dllexport )
BOOL APIENTRY DllMain( HANDLE hModule, 
                       DWORD  ul_reason_for_call, 
                       LPVOID lpReserved
 )
{
switch(ul_reason_for_call)
{
// Initial COM
case DLL_PROCESS_ATTACH:
break;
// Detach COM
case DLL_PROCESS_DETACH:
break;
}
    return TRUE;
}
bool DllExport __stdcall  CreateVirtualDirection(LPCTSTR   lpszVirtualDirName,   LPCTSTR   lpszDiskPath)
{
IADsContainer* iContainer = NULL;
IADs* iAds = NULL;
HRESULT hr = S_OK;
// Get Web Server
hr = ADsGetObject(L"IIS://localhost/w3svc", IID_IADs, (void**)&iContainer);
if(FAILED(hr))
{
iContainer->Release();
return false;
}
// Get default site
iContainer->GetObject(_bstr_t("IIsWebVirtualDir"),_bstr_t("1"),(IDispatch**)&iAds);
// Get Access to the virtual directory
if(iAds->QueryInterface(IID_IADsContainer,(void**)&iContainer) == S_OK)
{
if(iContainer->Create(_bstr_t("IIsWebVirtualDir"),_bstr_t(lpszVirtualDirName),(IDispatch**)&iAds)==S_OK)
{
// Set virtual directory's property
iAds->Put(_bstr_t("AccessRead"),_variant_t("True"));
iAds->Put(_bstr_t("AccessWrite"),_variant_t("True"));   
iAds->Put(_bstr_t("Path"),_variant_t(lpszDiskPath));   
iAds->SetInfo();   
iAds->Release();   
iAds->Release();   
iContainer->Release();   
iContainer->Release();   
return   true;   
}
else
{
iAds->Release();   
    iAds->Release();   
    iContainer->Release();   
    iContainer->Release();   
    return   false;   
}
}
else
{
iAds->Release();   
iContainer->Release();  
}
return true;
}
现在的问题是:
1)要在DLL_PROCESS_ATTACH中初始化com以及DLL_PROCESS_DETACH释放com怎么写?本人没有学过com,所以...很急
2)编译的时候有这样的问题IID_IADsContainer,IID_IADs没有定义,这个应该是接口的name把,怎么处理?
谢谢了


解决方案1:

msdn上的一句话
Because there is no way to control the order in which in-process servers are loaded or unloaded, do not call CoInitialize, CoInitializeEx, or CoUninitialize from the DllMain function. 
不能在dllmain中调用com的初始化和卸载。
2这个得看代码才行。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 懂COM编程的帮我看看这里是怎么回事啊?谢谢了
  • 对COM只懂一点点,想问看什么书比较好?
  • 懂com的人过来看一下

相关文章

  • 2017-06-05 请教如何编程阻止windows2000自动重新启动?
  • 2017-06-05 如何利用CALLBACK函数实现定时器呢?
  • 2017-06-04 怎样用sink里面的接口?
  • 2017-06-04 怎样把一个模块转换成activex控件?(只剩80了)
  • 2017-06-04 MFC中两个TAB标签页之间的控件如何传值?
  • 2017-06-04 类名只能调用静态函数??
  • 2017-06-05 什么函数可以获得指定进程的cpu利用率阿??高分!!!急!!
  • 2017-06-05 可以让一个进程读写另一个进程中的变量吗?
  • 2017-06-05 atl工程于多字符编码
  • 2017-06-04 关于OCX问题

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 用什么钩子才能捕获WM_TIMER消息?
    • BHO怎么获得url
    • 用midl对idl文件操作,生成的四个文件能否直接编译成dll?
    • 界面放置控件太多出现的问题
    • 有人使用过WTClientdll吗
    • 编译错误急。。。。。求救。
    • 在IE里调用WORD,编辑后可以直接保存到服务器,我想编写一个ActiveXDLL,但不知道怎样入手?????
    • 关于接口函数参数的问题,请各位帮忙!
    • 一个关于ActiveX中的SetTimer的问题-----很着急的!!!
    • 主要是怎么连接来测试dll菜鸟问题急

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有