const char* 自定义字符串的区别 class
const char* difference in custom String class
我有一个 String
的通用类型,它具有我的证书 cert.pem
的值
我将它传递给一个转换为 const char*
的函数,但它不起作用。我的代码在下面,它不起作用
String sCertificate = "cert.pem";
if ( SSL_CTX_use_certificate_file(ctx,(const char*)&sCertificate, SSL_FILETYPE_PEM) <= 0 )
{
mPtrLogger->logMsg(CF, "", "Unable to Load Certificate file", INFO);
abort();
}
并且此代码有效
if ( SSL_CTX_use_certificate_file(ctx,"cert.pem", SSL_FILETYPE_PEM) <= 0 )
{
mPtrLogger->logMsg(CF, "", "Unable to Load Certificate file", INFO);
abort();
}
我似乎无法理解问题所在。
除非 String
类型具有重载的转换运算符,否则无法通过强制转换进行转换。 (把这想象成将你的一个复杂的 类 转换为 char *
。)
回顾 String
的方法并选择 returns 和 char *
的方法。 std::string
有方法 c_str
和 data
。
我有一个 String
的通用类型,它具有我的证书 cert.pem
的值
我将它传递给一个转换为 const char*
的函数,但它不起作用。我的代码在下面,它不起作用
String sCertificate = "cert.pem";
if ( SSL_CTX_use_certificate_file(ctx,(const char*)&sCertificate, SSL_FILETYPE_PEM) <= 0 )
{
mPtrLogger->logMsg(CF, "", "Unable to Load Certificate file", INFO);
abort();
}
并且此代码有效
if ( SSL_CTX_use_certificate_file(ctx,"cert.pem", SSL_FILETYPE_PEM) <= 0 )
{
mPtrLogger->logMsg(CF, "", "Unable to Load Certificate file", INFO);
abort();
}
我似乎无法理解问题所在。
除非 String
类型具有重载的转换运算符,否则无法通过强制转换进行转换。 (把这想象成将你的一个复杂的 类 转换为 char *
。)
回顾 String
的方法并选择 returns 和 char *
的方法。 std::string
有方法 c_str
和 data
。