VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 583|回复: 14

关于vs2019 生成包装类,import dll文件出错

[复制链接]
95_avatar_middle
最佳答案
0 
在线会员 发表于 2021-1-23 21:50:01 | 显示全部楼层 |阅读模式
我想使用winhttp接口,刚开始使用注册表中的类型库 如下
关于vs2019  生成包装类,import dll文件出错
点击确定后出错
关于vs2019  生成包装类,import dll文件出错
百度后没找到有用信息,

使用dll文件 如下
关于vs2019  生成包装类,import dll文件出错
选择了dll文件后并没有出现可用接口
关于vs2019  生成包装类,import dll文件出错
试过几次都不行,


使用 #import ,出错如下
关于vs2019  生成包装类,import dll文件出错
路径没有错误
关于vs2019  生成包装类,import dll文件出错

我觉得可能是dll文件损坏,于是去下载了一个,在删除原winhttp.dll文件时,发现已被系统程序dashost.exe占用
关于vs2019  生成包装类,import dll文件出错
我想有可能是其他程序占用导致vs2019无法使用,于是尝试杀掉dashost.exe进程 系统直接崩溃重启!!!!

然后我尝试用我下载的winhttp.dll生成类
关于vs2019  生成包装类,import dll文件出错
关于vs2019  生成包装类,import dll文件出错
这次有了可用接口,点击确定后依然同上报错


然后尝试使用import新下载的winhttp.dll 编译通过了,但是接口却不能使用
关于vs2019  生成包装类,import dll文件出错 关于vs2019  生成包装类,import dll文件出错

问题如上,求助神通广大的贴友们









上一篇:关于如何获取U盘的物理序列号
下一篇:MFC中添加WebBrower控件,函数出错
31_avatar_middle
最佳答案
8 
在线会员 发表于 2021-1-24 15:21:45 | 显示全部楼层
win10是 winhttpcom.dll 不是 winhttp.dll 了!
95_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-1-24 18:00:41 | 显示全部楼层
cpp2019 发表于 2021-1-24 15:21
win10是 winhttpcom.dll 不是 winhttp.dll 了!

试过了 也不行
95_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-1-24 19:32:42 | 显示全部楼层
cpp2019 发表于 2021-1-24 15:21
win10是 winhttpcom.dll 不是 winhttp.dll 了!

经过反复尝试发现,关于import 问题:
写入import dll 文件编译之后 任然不能使用接口,需要在 debug 文件夹中找到编译dll文件产生的 .tlh 后缀文件,然后用vs2019打开,就可以正常使用接口了,

难道是vs2019的问题?还有通过生成类的方式报错仍然没解决
19_avatar_middle
最佳答案
12 
在线会员 发表于 2021-1-24 20:43:02 | 显示全部楼层
为什么不用winhttp aip呢比winhttp com(接口)好用多了
31_avatar_middle
最佳答案
8 
在线会员 发表于 2021-1-24 20:46:51 | 显示全部楼层
IMYFALT 发表于 2021-1-24 19:32
经过反复尝试发现,关于import 问题:
写入import dll 文件编译之后 任然不能使用接口,需要在 debug 文 ...


你可以看看这个:https://blog.csdn.net/k83133058/article/details/112645831
用起来很方便!
95_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-1-25 18:49:21 | 显示全部楼层
本帖最后由 IMYFALT 于 2021-1-25 19:09 编辑
236a 发表于 2021-1-24 20:43
为什么不用winhttp aip呢比winhttp com(接口)好用多了


用com遇到问题了想解决一下。。api好像没有com调用简单, 参考=》http://sunweiwei.com/winhttp-api-vs-com/
api使用的参数明显比较多
com函数:https://docs.microsoft.com/en-us/windows/win32/winhttp/iwinhttprequest-interface
api函数:https://docs.microsoft.com/en-us/windows/win32/winhttp/winhttp-functions
95_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2021-1-25 18:52:08 | 显示全部楼层
cpp2019 发表于 2021-1-24 20:46
你可以看看这个:https://blog.csdn.net/k83133058/article/details/112645831
用起来很方便!

多谢了 但对于生成类报错的问题还是不太清楚关于vs2019  生成包装类,import dll文件出错
31_avatar_middle
最佳答案
8 
在线会员 发表于 2021-1-26 14:27:36 | 显示全部楼层
IMYFALT 发表于 2021-1-25 18:52
多谢了 但对于生成类报错的问题还是不太清楚

论坛有教程
31_avatar_middle
最佳答案
8 
在线会员 发表于 2021-1-26 20:06:32 | 显示全部楼层
  1. /*
  2.         编译环境 VS2017, 字符集随意
  3.         很久没写控制台程序,今儿发现控制台输出的中文字符串不能是宽字符,
  4.         即便项目属性中设置了Unicode字符集,网页源码中的中文也一样会显示问号,刚开始还以为是网页编码的原因
  5.         wprintf_s(_T("%s\n"), _T("中文"));        //输出问号
  6.         printf_s("%s\n", "中文");                        //正常输出
  7. */
  8. #include <windows.h>
  9. #include <tchar.h>
  10. #include <atlconv.h>

  11. #pragma comment(lib, "ole32.lib")
  12. #pragma comment(lib, "oleaut32.lib")
  13. #import "C:\\Windows\\System32\\WinHttpCom.dll"  no_namespace // Win10 不再是 WinHttp.dll 而是 WinHttpCom.dll

  14. int main()
  15. {
  16.         CoInitialize(0);

  17.         IWinHttpRequestPtr http = NULL;
  18.         http.CreateInstance(__uuidof(WinHttpRequest));
  19.         http->Open(_T("Get"), _T("https://www.baidu.com"));
  20.         http->SetRequestHeader(_T("Referer"),_T("https://www.baidu.com"));
  21.         http->Send();
  22.        
  23.         /*_bstr_t _bszHtml;
  24.         _bszHtml = http->GetResponseText();
  25.         OutputDebugString((TCHAR*)_bszHtml.GetBSTR());*/

  26.         BSTR bszHtml;
  27.         HRESULT hr = http->get_ResponseText(&bszHtml);
  28.         OutputDebugString((TCHAR*)bszHtml);

  29.         // BSTR To ANSIC
  30.         USES_CONVERSION;
  31.         LPSTR lpHtml = OLE2A(bszHtml);        //W2A
  32.         printf_s("%Ts", lpHtml);

  33.         /*DWORD dwSize = MultiByteToWideChar(CP_ACP, 0, lpHtml, -1, NULL, 0);
  34.         TCHAR *pHtml = new TCHAR[dwSize];
  35.         MultiByteToWideChar(CP_UTF8, 0, lpHtml, -1, pHtml, dwSize);
  36.         wprintf_s(_T("%Ls"), pHtml);
  37.         delete []pHtml;*/

  38.         http.Release();
  39.         CoUninitialize();

  40.         return 0;
  41. }
复制代码
48_avatar_middle
最佳答案
0 
在线会员 发表于 2021-2-10 18:20:41 | 显示全部楼层
请问你的问题解决了吗   我也遇到了  还有你是vs2019吗  为什么你可以从类型库添加类  我压根没这个选项
85_avatar_middle
最佳答案
1 
在线会员 发表于 2021-2-10 23:37:08 | 显示全部楼层
陌影惹迷离 发表于 2021-2-10 18:20
请问你的问题解决了吗   我也遇到了  还有你是vs2019吗  为什么你可以从类型库添加类  我压根没这个选项

+1 ;同样也想知道关于vs2019  生成包装类,import dll文件出错
31_avatar_middle
最佳答案
8 
在线会员 发表于 2021-2-15 10:21:55 | 显示全部楼层
陌影惹迷离 发表于 2021-2-10 18:20
请问你的问题解决了吗   我也遇到了  还有你是vs2019吗  为什么你可以从类型库添加类  我压根没这个选项

写好了现成的用法,你们怎么就视而不见呢?
https://www.cctry.com/forum.php? ... 649&pid=1421298
31_avatar_middle
最佳答案
8 
在线会员 发表于 2021-2-15 10:25:01 | 显示全部楼层
Maxson 发表于 2021-2-10 23:37
+1 ;同样也想知道

写好了现成的用法,你们怎么就视而不见呢?
https://www.cctry.com/forum.php? ... 649&pid=1421298

源码一共不超50行,建个控制台项目,复制粘贴一下都不愿意!你们这种学习态度我建议买个会员,站长会手把手教的!
85_avatar_middle
最佳答案
1 
在线会员 发表于 2021-2-16 23:07:56 | 显示全部楼层
cpp2019 发表于 2021-2-15 10:25
写好了现成的用法,你们怎么就视而不见呢?
https://www.cctry.com/forum.php?mod=redirect&goto=findpo ...

额,我可能没有表达清楚。

为什么你可以从类型库添加类 ,这个功能我在VS2019上没有找到关于vs2019  生成包装类,import dll文件出错
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2021-3-7 16:40

Powered by CcTry.CoM

© 2009-2020 cctry.com

快速回复 返回顶部 返回列表