STDMETHODIMP Cgkztrw::PinReportPressed(char* cpKey,SHORT timeOut,BSTR* pwd,SHORT* val)
{
// TODO: 在此添加实现代码
HINSTANCE hDLL;//dll句柄
//HANDLE hCom;//串口句柄
pinReportPressed _rpwd;//声明函数指针
hDLL=LoadLibrary(L"ZT_EPP_API.dll");
ofstream fout;
fout.open("c:\\test.log",ios::app);
if(hDLL==NULL){
FreeLibrary(hDLL);
}else{
_rpwd=(pinReportPressed)GetProcAddress(hDLL,"ZT_EPP_PinReportPressed");
if(_rpwd!=NULL){
_rpwd(cpKey,timeOut);
fout<<"返回值的结果为:"<<*val<<".........password value..........."<<cpKey<<endl;
CComBSTR passwd=_com_util::ConvertStringToBSTR(cpKey);
pwd=&passwd;
fout<<"BSTR*的结果为:"<<pwd<<endl;
return S_OK;
}else{
fout<<"PinReportPressed函数指针为空!"<<endl;
}
}
return S_OK;
}
我的这段函数代码中,pwd的结果为什么是一个指针,而不是值?求各位大神帮帮忙解答下,谢谢了!
16 个解决方案
#1
BSTR* 是二级指针
#2
主要是我网页中要调用的,所以要显示这个BSTR* pwd的值此时我该如何改呢,还请明示多谢了!
#3
这样试试
fout<<"BSTR*的结果为:"<<(BSTR)passwd<<endl;
编译不过就这样
fout<<"BSTR*的结果为:"<<(WCHAR *)(BSTR)passwd<<endl;
fout<<"BSTR*的结果为:"<<(BSTR)passwd<<endl;
编译不过就这样
fout<<"BSTR*的结果为:"<<(WCHAR *)(BSTR)passwd<<endl;
#4
这样输出是没有用的,因为我要返回值,js调用,需要这个值的,现在的问题是如果单纯转换是没有问题的,可是当我传值的时候就是有问题的!
passwd是可以正常输出值的,但是当我第二次引用的时候就是指针了,所以我不知道该如何改才可以得到值,而不是地址,在返回的时候!
passwd是可以正常输出值的,但是当我第二次引用的时候就是指针了,所以我不知道该如何改才可以得到值,而不是地址,在返回的时候!
#5
pwd=&passwd;
不明显是指针么?问题的关键应该是: 是一级指针还是二级指针等等?和值有什么关系
不明显是指针么?问题的关键应该是: 是一级指针还是二级指针等等?和值有什么关系
#6
1.代码风格太糟糕,看不清
2.不知道你在说啥,代码不完整
2.不知道你在说啥,代码不完整
#7
CComBSTR passwd=_com_util::ConvertStringToBSTR(cpKey);
*pwd=passwd;
fout<<"BSTR*的结果为:"<<*pwd<<endl;
就是这样的,passwd是一个CComBSRT的值,pwd是一个[out] BSTR* pwd类型的指针,现在我需要把输出*pwd的值,可是还是输出的指针,而不是值,可以加我QQ详聊下吗!
*pwd=passwd;
fout<<"BSTR*的结果为:"<<*pwd<<endl;
就是这样的,passwd是一个CComBSRT的值,pwd是一个[out] BSTR* pwd类型的指针,现在我需要把输出*pwd的值,可是还是输出的指针,而不是值,可以加我QQ详聊下吗!
#8
QQ1402389038
#9
你怎么调那个函数的?
参数怎么传的?
BSTR pwd;
PinReportPressed(..&pwd..)才行啊,你参数别是穿的指针
#10
参数是在js中传递的!
#11
[id(4)] HRESULT PinReportPressed( [out] CHAR* cpKey,SHORT timeOut,[out] BSTR* pwd,[out,retval] SHORT* val);
这个事函数的声明;
这个事函数的声明;
#12
function PinReportPressed() {
var temp, val,pwd;
for(j=0;j<16;j++){
val = gkztrw.PinReportPressed(cpKey, 10000, pwd);
alert(temp + ".......temp" + val + "......." + pwd);
}
}
这个是我的JS函数调用的代码
var temp, val,pwd;
for(j=0;j<16;j++){
val = gkztrw.PinReportPressed(cpKey, 10000, pwd);
alert(temp + ".......temp" + val + "......." + pwd);
}
}
这个是我的JS函数调用的代码
#13
如果是JS,那肯定得到的是指针啊,pwd会根据你的函数参数类型自动转换的
#14
如果这样,我怎么才可以得到值呢,大哥帮忙下, 有点着急!
#15
如果要得到值,该怎么做呢,还请明示下,现在有点急,多谢了!
#16
我改成SHORT类型的值后,结果可以正常输出,但是JS还是无法识别,undefined?为何?
#1
BSTR* 是二级指针
#2
主要是我网页中要调用的,所以要显示这个BSTR* pwd的值此时我该如何改呢,还请明示多谢了!
#3
这样试试
fout<<"BSTR*的结果为:"<<(BSTR)passwd<<endl;
编译不过就这样
fout<<"BSTR*的结果为:"<<(WCHAR *)(BSTR)passwd<<endl;
fout<<"BSTR*的结果为:"<<(BSTR)passwd<<endl;
编译不过就这样
fout<<"BSTR*的结果为:"<<(WCHAR *)(BSTR)passwd<<endl;
#4
这样输出是没有用的,因为我要返回值,js调用,需要这个值的,现在的问题是如果单纯转换是没有问题的,可是当我传值的时候就是有问题的!
passwd是可以正常输出值的,但是当我第二次引用的时候就是指针了,所以我不知道该如何改才可以得到值,而不是地址,在返回的时候!
passwd是可以正常输出值的,但是当我第二次引用的时候就是指针了,所以我不知道该如何改才可以得到值,而不是地址,在返回的时候!
#5
pwd=&passwd;
不明显是指针么?问题的关键应该是: 是一级指针还是二级指针等等?和值有什么关系
不明显是指针么?问题的关键应该是: 是一级指针还是二级指针等等?和值有什么关系
#6
1.代码风格太糟糕,看不清
2.不知道你在说啥,代码不完整
2.不知道你在说啥,代码不完整
#7
CComBSTR passwd=_com_util::ConvertStringToBSTR(cpKey);
*pwd=passwd;
fout<<"BSTR*的结果为:"<<*pwd<<endl;
就是这样的,passwd是一个CComBSRT的值,pwd是一个[out] BSTR* pwd类型的指针,现在我需要把输出*pwd的值,可是还是输出的指针,而不是值,可以加我QQ详聊下吗!
*pwd=passwd;
fout<<"BSTR*的结果为:"<<*pwd<<endl;
就是这样的,passwd是一个CComBSRT的值,pwd是一个[out] BSTR* pwd类型的指针,现在我需要把输出*pwd的值,可是还是输出的指针,而不是值,可以加我QQ详聊下吗!
#8
QQ1402389038
#9
你怎么调那个函数的?
参数怎么传的?
BSTR pwd;
PinReportPressed(..&pwd..)才行啊,你参数别是穿的指针
#10
参数是在js中传递的!
#11
[id(4)] HRESULT PinReportPressed( [out] CHAR* cpKey,SHORT timeOut,[out] BSTR* pwd,[out,retval] SHORT* val);
这个事函数的声明;
这个事函数的声明;
#12
function PinReportPressed() {
var temp, val,pwd;
for(j=0;j<16;j++){
val = gkztrw.PinReportPressed(cpKey, 10000, pwd);
alert(temp + ".......temp" + val + "......." + pwd);
}
}
这个是我的JS函数调用的代码
var temp, val,pwd;
for(j=0;j<16;j++){
val = gkztrw.PinReportPressed(cpKey, 10000, pwd);
alert(temp + ".......temp" + val + "......." + pwd);
}
}
这个是我的JS函数调用的代码
#13
如果是JS,那肯定得到的是指针啊,pwd会根据你的函数参数类型自动转换的
#14
如果这样,我怎么才可以得到值呢,大哥帮忙下, 有点着急!
#15
如果要得到值,该怎么做呢,还请明示下,现在有点急,多谢了!
#16
我改成SHORT类型的值后,结果可以正常输出,但是JS还是无法识别,undefined?为何?