#include "test.h"
#include <iostream.h>
#include <comdef.h>
#include <atlbase.h>
#pragma warning(disable:4146)
#import "C:\Program Files\Common Files\System\ado\msado15.dll" named_guids rename("EOF","adoEOF"), rename("BOF","adoBOF")
#pragma warning(default:4146)
//using namespace ADODB;char gettime()
{
    _ConnectionPtr pConn("ADODB.Connection");
    _RecordsetPtr pRs("ADODB.Recordset");
    _CommandPtr pCommand;
    pCommand.CreateInstance(__uuidof(Command));
//    Cstring strConn;
    
    pConn->Open("Provider=SQLOLEDB;Server=10.163.10.3;DataBase=master;UID=trace;PWD=traceaeclmis","","",adModeUnknown);
    pConn->ConnectionTimeout=300;    pCommand->ActiveConnection=pConn;
    pCommand->CommandText="Select Convert(char(20),getdate(),120) AS sysTime";
    pCommand->CommandType=adCmdText;
    pCommand->CommandTimeout=300;
    pCommand->Parameters->Refresh();    pRs=pCommand->Execute(NULL,NULL,adCmdUnknown);
    _variant_t varValue=pRs->GetCollect("sysTime");
    Cstring strValue=(char*)_bstr_t(varValue);
    return strValue;
}
大侠帮看看,我要获取SQL服务器的时间,封装在DLL中以字符串形式返回。
总是出错,错误信息:
e:\tddownload\test\debug\msado15.tlh(407) : warning C4146: unary minus operator applied to unsigned type, result still unsigned
E:\TDdownload\test\test.cpp(6) : warning C4185: ignoring unknown #import attribute 'no_namespaces'
E:\TDdownload\test\test.cpp(31) : error C2065: 'Cstring' : undeclared identifier
E:\TDdownload\test\test.cpp(31) : error C2146: syntax error : missing ';' before identifier 'strValue'
E:\TDdownload\test\test.cpp(31) : error C2065: 'strValue' : undeclared identifier
E:\TDdownload\test\test.cpp(31) : error C2440: '=' : cannot convert from 'char *' to 'int'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast