mysql .net 接口_MySQL C++.net 交互

展开全部

webServices

你用PHP 写一个WS 然后用C++操作这个WS 就行了。

写数据 和 读数据

#include "StdAfx.h"

#include "WebServices.h"

#import "msxml4.dll"

using namespace MSXML2;

#include "atlenc.h"

#import "C:\Program Files\Common Files\MSSoap\Binaries\MSSOAP30.dll" \

exclude("IStream", "IErrorInfo", "ISequentialStream", "_LARGE_INTEGER", \

"_ULARGE_INTEGER", "tagSTATSTG", "_FILETIME")

using namespace MSSOAPLib30;

WebServices::WebServices(void)

{

CoInitialize(NULL);

}

WebServices::~WebServices(void)

{

CoUninitialize();

}

bool WebServices::SendData(peroson_info perInfo)

{

ISoapSerializerPtr Serializer;

ISoapReaderPtr Reader;

ISoapConnectorPtr Connector;

Connector.CreateInstance(__uuidof(HttpConnector30));

Connector->Property["EndPointURL"] = "http://192.168.0.10:8080/CVR100S/services/Hello";

Connector->Connect();

Connector->Property["SoapAction"] = "";

Connector->BeginMessage();

Serializer.CreateInstance(__uuidof(SoapSerializer30));

Serializer->Init(_variant_t((IUnknown*)Connector->InputStream));

Serializer->StartEnvelope("","","");

Serializer->StartBody("");

Serializer->StartElement("SaveInfo","http://ws.chinaidcard.com","","");

Serializer->StartElement("in0","","","");

SYSTEMTIME time;

GetLocalTime(&time);

CString strTime;

strTime.Format(L"%04d-%02d-%02d %02d:%02d:%02d",time.wYear,time.wMonth,time.wDay,time.wHour,time.wMinute,time.wSecond);

CString temp=perInfo.Name+L";"+perInfo.Sex+L";"+perInfo.Nation+L";"+perInfo.Birthday+L";"+perInfo.Address+L";"+perInfo.IDCode+L";"+perInfo.发证机关+L";"+(perInfo.StartDate+L"-"+perInfo.EndDate)+L";"+perInfo.NewAddress+L";"+strTime+L";"+L"netGroup01"+L";"+L"RID2";

Serializer->WriteString(temp.AllocSysString());

Serializer->EndElement();

Serializer->StartElement("in1","","","");

CFile file;

byte *data;

int len=0;

TCHAR szPath[MAX_PATH];

GetModuleFileName( NULL, szPath, MAX_PATH );

CString path=CString(szPath);

CString laod=path.Left(path.ReverseFind('\\')+1)+L"zp.bmp";

if(file.Open( laod,CFile::modeRead))

{

file.SeekToBegin();

len=file.GetLength();

data=new byte[len];

file.Read(data,len);

file.Close();

}

CString buffer;

IDataEncoderFactoryPtr encoderFc;

encoderFc.CreateInstance(__uuidof(DataEncoderFactory30));

DWORD *len1=new DWORD;

IDataEncoderPtr encoder=encoderFc->GetDataEncoder(L"base64");

encoder->raw_SizeToEncode(data,len,len1);

int lon=*len1;

byte *data1=new byte[lon+1];

HRESULT hr=encoder->Encode(data,len,data1,len1);

int len2=*len1;

if(FAILED(hr))

{

TRACE0("123");

}

Serializer->WriteBuffer(len2,(byte *)data1);

delete len1;

delete data;

delete data1;

Serializer->EndElement();

Serializer->EndElement();

Serializer->EndBody();

Serializer->EndEnvelope();

Connector->EndMessage();

Reader.CreateInstance(__uuidof(SoapReader30));

Reader->Load(_variant_t((IUnknown*)Connector->OutputStream), "");

CString result=Reader->RpcResult->text;

if(result==L"ok")

{

return true;

}else

{

return false;

}

}

CString WebServices::GetBmp()

{

ISoapSerializerPtr Serializer;

ISoapReaderPtr Reader;

ISoapConnectorPtr Connector;

Connector.CreateInstance(__uuidof(HttpConnector30));

Connector->Property["EndPointURL"] = "http://192.168.0.10:8080/CVR100S/services/Hello";

Connector->Connect();

Connector->Property["SoapAction"] = "";

Connector->BeginMessage();

Serializer.CreateInstance(__uuidof(SoapSerializer30));

Serializer->Init(_variant_t((IUnknown*)Connector->InputStream));

Serializer->StartEnvelope("","","");

Serializer->StartBody("");

Serializer->StartElement("GetBmp","http://ws.chinaidcard.com","","");

Serializer->EndElement();

Serializer->EndBody();

Serializer->EndEnvelope();

Connector->EndMessage();

Reader.CreateInstance(__uuidof(SoapReader30));

Reader->Load(_variant_t((IUnknown*)Connector->OutputStream), "");

IDataEncoderFactoryPtr encoderFc;

encoderFc.CreateInstance(__uuidof(DataEncoderFactory30));

IDataEncoderPtr encoder=encoderFc->GetDataEncoder(L"base64");

CString strdata=Reader->RpcResult->text;

int byteLen=Reader->RpcResult->text.length()*2+2;

CFile file;

DWORD *len23=new DWORD;

encoder->SizeToDecode(strdata.AllocSysString(),byteLen,len23);

int l=*len23;

byte *data12=new byte[l];

encoder->Decode(strdata.AllocSysString(),byteLen,data12,len23);

if(file.Open(L"data.bmp",CFile::modeCreate|CFile::modeReadWrite))

{

file.Write(data12,l);

file.Close();

}

delete len23,data12;

return L"";

}

或者你用

CInternet

CHttpFile

看看例子 我手头上没有62616964757a686964616fe78988e69d8331333239313532

本回答被网友采纳

2Q==

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值