C#類庫(.NET Framework)
新建項目——>Visual C# ——>類庫(.NET Framework)
C#類庫代碼
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Aliyun.Acs.Core;
using Aliyun.Acs.Core.Profile;
using Aliyun.Acs.Core.Exceptions;
using Aliyun.Acs.Core.Http;
using Newtonsoft.Json;
namespace AliyunSmsClassLibrary
{
public class AliyunSms
{
string accessKeyId, secret;
public AliyunSms(string accessKeyId, string secret)
{
this.accessKeyId = accessKeyId;
this.secret = secret;
}
public void printAction()
{
Console.WriteLine("SendSms");
}
public string sendSms(string phoneNumber, string vehicleID, string Time, string location)
{
IClientProfile profile = DefaultProfile.GetProfile("cn-hangzhou", accessKeyId, secret);
DefaultAcsClient client = new DefaultAcsClient(profile);
CommonRequest request = new CommonRequest();
request.Method = MethodType.POST;
request.Domain = "dysmsapi.aliyuncs.com";
request.Version = "2017-05-25";
request.Action = "SendSms";
// request.Protocol = ProtocolType.HTTP;
request.AddQueryParameters("PhoneNumbers", phoneNumber);
request.AddQueryParameters("SignName", "中交華安");
request.AddQueryParameters("TemplateCode", "SMS_177552111");
request.AddQueryParameters("TemplateParam", JsonConvert.SerializeObject(new { vehicleID, Time, location }));
try
{
CommonResponse response = client.GetCommonResponse(request);
Console.WriteLine(System.Text.Encoding.Default.GetString(response.HttpResponse.Content));
return System.Text.Encoding.Default.GetString(response.HttpResponse.Content);
}
catch (ServerException e)
{
Console.WriteLine(e);
return e.Message;
}
catch (ClientException e)
{
Console.WriteLine(e);
return e.Message;
}
}
}
}
生成dll
在\bin\Debug\xx.dll
C++空項目
新建項目——>Visual C++ ——>空項目
公共語言運行時支持(/clr)
右鍵屬性——>常規——>項目默認值——>公共語言運行時支持(/clr)
拷貝dll
將生成的dll文件拷貝到Debug目錄下(如果是Release則拷貝到Release目錄下)
C++源碼
源文件——>添加——>新建項——>main.cpp
#include <string>
#include "assert.h"
#include <objbase.h>
#include <stdio.h>
#using "..\Debug\AliyunSmsClassLibrary.dll"
#pragma managed
using namespace AliyunSmsClassLibrary;
int main()
{
AliyunSmsClassLibrary::AliyunSms^ aliyunSms = gcnew AliyunSmsClassLibrary::AliyunSms("xxxxxx", "xxxxxx");
aliyunSms->printAction();
aliyunSms->sendSms("181xxxxxxxx", "閩B666", "11月22日 17點22分", "廈門軟件園二期西門");
return 0;
}
運行
運行 ok