在WMRM sdk 中的接口,RMGetLicense的使用中,调用方法时,总是返回“无效的参数”,
同类似的代码用VB写的一切正常。
代码如下:#include <atlbase.h>
#include <msnetobj.h>
#include <comutil.h>
int main(int argc, char* argv[])
{
::CoInitialize(NULL);
CComPtr<IRMGetLicense> p;
p.CoCreateInstance( __uuidof(RMGetLicense) );
if ( p.p != NULL )
{
try
{
BSTR bs;
HRESULT hr = p->GetDRMVersion( &bs ); }
catch ( ... ) {
p = NULL;
}
}
}有谁知道吗?分不够再加,在线等。
同类似的代码用VB写的一切正常。
代码如下:#include <atlbase.h>
#include <msnetobj.h>
#include <comutil.h>
int main(int argc, char* argv[])
{
::CoInitialize(NULL);
CComPtr<IRMGetLicense> p;
p.CoCreateInstance( __uuidof(RMGetLicense) );
if ( p.p != NULL )
{
try
{
BSTR bs;
HRESULT hr = p->GetDRMVersion( &bs ); }
catch ( ... ) {
p = NULL;
}
}
}有谁知道吗?分不够再加,在线等。
解决方案 »
- 祝贺本ID一周答题过150,技术分涨300分。散分喽。前10名+10
- 显示AVI文件某一帧的BMP图片,内存使用增加
- 急!!!问个简单的问题。
- CStatic背景透明问题,处理WM_CTLCOLOR消息能解决问题,但是却无法刷新
- 如何在主窗口的CFromView中的CEdit控件中使用Ctrl+C等快捷键复制粘贴东西?
- 再次提问,这个问题解决不了
- 机子中了木马,紧急求助!!!!!!!!!!!!!!!!!!!!!!
- 告诉原码送50分,告诉资料可靠送20分
- 怎么把一组数据转化为图片
- 消息映射可以继承......?
- 简单的CStringList做函数参数问题
- 怎么判断一个程序是有界面的还是dos的啊
对象可以创建成功,但调用
p->GetDRMVersion( &bs );方法时出错。
HRESULT hr = p->GetDRMVersion( &bs );
从提示看是参数错了。如果参数类型正确的话(是BSTR),VB不用管字符内存分配的,试试你自已分配内存,再传进去。
BSTR bs=SysAllocStringLen(NULL, 512);
首先你说的方法我早就尝试过的,没有办法。
感觉这似乎跟语言有冲突,
我已经试过VB,和C#,
类似的代码均没有问题。