Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C+中使用另一种语言+; 我需要使用一个名为MyJe>>的API,但是这个仅适用于除了C++之外的几乎所有语言( php、python、Ruby、java、NoDE.js、ES2015、Go和C*,就可以使用C++项目中的C代码,使用 CLR< /St>(公共语言运行时)。_C#_C++_Mailjet - Fatal编程技术网

C# 在C+中使用另一种语言+; 我需要使用一个名为MyJe>>的API,但是这个仅适用于除了C++之外的几乎所有语言( php、python、Ruby、java、NoDE.js、ES2015、Go和C*,就可以使用C++项目中的C代码,使用 CLR< /St>(公共语言运行时)。

C# 在C+中使用另一种语言+; 我需要使用一个名为MyJe>>的API,但是这个仅适用于除了C++之外的几乎所有语言( php、python、Ruby、java、NoDE.js、ES2015、Go和C*,就可以使用C++项目中的C代码,使用 CLR< /St>(公共语言运行时)。,c#,c++,mailjet,C#,C++,Mailjet,你能行。从C代码创建一个DLL文件,并从C++代码调用API。有一个选项,请参阅下面的链接 Mailjet提供了一个标准的JSON/HTTP(S)Web API,可用于任何提供HTTP和JSON支持的语言(本机、使用库或自己编写这些协议或格式)。您提到的语言仅仅是Mailjet为其提供包装的语言。C++允许你只使用API,使用C++包装器调用C++是非常低效的。只需使用支持HTTP和支持JSON的C++库,就可以了。根据Mailjet规范使用这些代码编写API调用,例如,使用正确的HTTP头和J

你能行。从C代码创建一个DLL文件,并从C++代码调用API。有一个选项,请参阅下面的链接


Mailjet提供了一个标准的JSON/HTTP(S)Web API,可用于任何提供HTTP和JSON支持的语言(本机、使用库或自己编写这些协议或格式)。您提到的语言仅仅是Mailjet为其提供包装的语言。C++允许你只使用API,使用C++包装器调用C++是非常低效的。只需使用支持HTTP和支持JSON的C++库,就可以了。根据Mailjet规范使用这些代码编写API调用,例如,使用正确的HTTP头和JSON正文格式构建HTTP请求并调用API。有很多C++库可用,任何一个合适的库都可以。

尝试编写小python脚本并用Python运行。
使用Qt5很容易。在VisualStudio中只需从该答案复制

< P>,就可以使用C++项目中的C代码,使用<强> CLR< /St>(<强>公共语言运行时)。 打开项目属性

  • 进入配置管理器下的左树状视图->常规
  • 在右侧网格中的项目默认设置下查找公共语言运行时支持
  • 如果是标准C++项目,默认值是:<强>没有公共语言运行库支持< /强>,您应该把它改成:<强>公共语言运行时支持(/CLR)< /Stista>
  • 在VS17中,还应将配置属性->C/C++->语言一致性模式更改为

CLR是一个可以用来组合.NET和C++的层。 C++语法是一样的,.NET语法有点不同。

  • 添加.Net项目或DLL作为CLR项目的引用
  • .Net名称空间分隔符-使用
    而不是
    作为分隔符
  • .Net类必须声明为“^”,以指示.Net引用。例如,
    String^
    是.Net字符串类
  • 使用
    gcnew
    创建.Net实例,而不是
    new
    。比如
    String^s=gcnewstring()
  • 字符串需要从C++到.NET和“./LI>”进行“翻译”。
混合代码的一个简短示例:
使用名称空间系统;
使用名称空间System::Runtime::InteropServices;
#包括
使用名称空间std;
int main(){
字符串^str=gcnew字符串(“Abcde”);
Console::WriteLine(str);//使用.Net打印到屏幕。
//从.Net字符串中提取c字符串
char*p=(char*)封送:StringToHGlobalAnsi(str.ToPointer();

谢谢你的答案。下面是我在C++中使用LIcCURL的解决方案。 首先,您必须安装libcurl(greattutorial here:)。
然后,在安装libcurl之后,您必须以这种方式使用它(当然还要自定义它):

#包括
#包括
int main(int argc,字符**argv)
{
CURL*CURL=NULL;
curl\u global\u init(curl\u global\u ALL);
curl=curl_easy_init();
字符串消息(R“({”消息“:[{”发件人“:{”电子邮件“,”姓名“:”我“}”,收件人“:[{”电子邮件“:”收件人电子邮件“,”姓名“:”TheName“}],”主题“:”主题“,”文本部分“:”测试邮件“}”);字符串前的//“R”应该允许像“\”这样的特殊字符
curl\u easy\u setopt(curl,CURLOPT\u URL,“https://api.mailjet.com/v3.1/send");
//curl\u easy\u setopt(curl,CURLOPT\u SSL\u VERIFYPEER,1L);
curl_easy_setopt(curl,CURLOPT_用户名,“您的API用户名”);
curl_easy_setopt(curl,CURLOPT_密码,“您的API密码”);
curl_easy_setopt(curl,CURLOPT_头,“内容类型:application/json”);
curl_easy_setopt(curl,CURLOPT_POSTFIELDSIZE,my_strlen(message));//my_strlen是个人strlen,其作用与message.length()相同
curl_easy_setopt(curl,CURLOPT_POSTFIELDS,message.c_str());
旋度,易于执行(旋度);
旋度\轻松\清洁(旋度);
}

为什么你想集成一些东西?你可以只为ApI编写你自己的C++客户端。可以检查这个[1 ]()阅读关于C++与微软C++的链接。如果你想把C语言lib导入“非微软”C++ C++,C++可以创建一个Visual C++库,并尝试将它链接到C++代码。我同意Reniuz的观点:如果你只想做简单的发送消息,那么从一个C++ JREST库开始JSON就比较容易。如果你使用完整的API,那么它可能是值得的,但是它不会很容易。C++忽略了其他的Lang.有一些库和接口可以使用。
python -i -u
using namespace System;  
using namespace System::Runtime::InteropServices;  

#include <iostream>
using namespace std;
  
int main() {  
   String ^ str = gcnew String("Abcde");  

   Console::WriteLine(str);  //use .Net to print to screen.
   
   //extract c string from .Net String
   char *p = (char*)Marshal::StringToHGlobalAnsi(str).ToPointer();  

   cout<<p<<endl;  // use C++ to print to screen

   //free the extracted pointer.
   Marshal::FreeHGlobal(IntPtr(p));

}  
#include <curl/curl.h>
#include <string>
int main(int argc, char **argv)
{
    CURL *curl = NULL;
    curl_global_init(CURL_GLOBAL_ALL);
    curl = curl_easy_init();
    string message(R"({"Messages":[{"From":{"Email":"THE SENDER MAIL","Name":"Me"},"To":[{"Email":"THE RECEIVER EMAIL","Name":"TheName"}],"Subject":"TheSubject","TextPart":"TEST MAIL"}]})"); // "R" before the string is supposed to allow special characters like "\"

    curl_easy_setopt(curl, CURLOPT_URL, "https://api.mailjet.com/v3.1/send");
    //curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 1L);
    curl_easy_setopt(curl, CURLOPT_USERNAME, "YOUR API USERNAME");
    curl_easy_setopt(curl, CURLOPT_PASSWORD, "YOUR API PASSWORD");
    curl_easy_setopt(curl, CURLOPT_HEADER, "Content-Type: application/json");
    curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, my_strlen(message)); // my_strlen is a personnal strlen, does the same as message.length()
    curl_easy_setopt(curl, CURLOPT_POSTFIELDS, message.c_str());
    curl_easy_perform(curl);
    curl_easy_cleanup(curl);
}