这样也不行,它报错
D:\zjprojects\MapC1\Main.cpp(86) : error C2664: 'ParsePath' : cannot convert parameter 1 from 'const struct tagVARIANT' to 'class CString'
D:\zjprojects\MapC1\Main.cpp(86) : error C2664: 'ParsePath' : cannot convert parameter 1 from 'const struct tagVARIANT' to 'class CString'
解决方案 »
- 如何用c#实现像Q+一样滑屏的效果?用dotnetbar可以实现吗?
- 关于API函数WriteFile发送数据的问题
- VC调用EXCEL导出类如何进行单元格的复制操作
- 关于应用winsock在互联网上通信的问题
- MFC好还是API
- 关于xtreme toolkit pro 8.7的问题
- 有没有postscript的查看工具?
- 请问我要使capCreateCaptureWindow(...)不新开窗口而被创建,如何定义(见内容)?
- 请问谁有用CSOCKET做的基于SMTP的Email程序(源码),高分感谢!
- 对于网络状况不是很好的环境,是不是每次都关闭连接,情况会好点?
- 请问大家结构体怎么用呀?
- 哪有petzold的那本经典windows程序设计的中文电子版下?
对于在VB利用References引用的在VC里需要用 #import 引用。然后会导入一些声明。比如IEllipticArc,IEllipticArcPtr...一般使用 IxxxPtr,你可以认为IxxxPtr pAbc;相当于 Dim pAbc as new xxx
这称为“智能指针”但看来你是要处理事件的,在VC里处理事件比较麻烦,一般你需要写个Sink,也就是接收器,本身就是一个实现IDispatch接口的组件,然后用ConnectionPoint的接口连接上去才能接收事件。VARIANT是一个大的结构体,包括所有的数据类型。可以用一个类_variant_t来操作,字符串是_bstr_t,也可以直接用“=”,但实际上它封装了一些操作。快速学习COM,建议读MSDN中ADO的VC的帮助,因为想必你对ADO应该很熟悉,在ADO帮助里是VBVC对照的。
可是我在VC里用&fileNames[i]不是相当于VB例程里的fileNames(i)吗,为什么不对呢
而VB的数组在内存里根本不是数组,是 SafeArray,操作起来专门有一套SafeArray函数。
就是说,你要先取出safearray的element,然后再进行BSTR的转换。COM可是很复杂的