我想在我的Windows Store C#应用程序中使用C代码。在C / C ++上不是很擅长,但可以用几行来抨击,所以我有一个问题和一个问题。其中一个C源函数如下所示:
send_data(const char *data, size_t len)
我尝试编写的C ++ / CX包装器类中此send_data C方法的包装方法具有以下签名:
WrapperClass::send_data(const Platform::Array<byte>^ buff)
以下是问题:
答案 0 :(得分:0)
我是否需要添加NULL来终止char *数组?
这取决于C send_data()
函数实际发送的内容。它是否发送0
- 终止符?如果“是”,那么您需要提供它或让发件人的实现附加它。
答案 1 :(得分:-1)
所以,回答我的第一个问题 - 将Platform :: Array转换为char *并不比:
更难const char* data = _strdup((const char*)data->Data);
注意,我使用的是Visual C ++ CLI(Visual Studio 2013),所以_strdup是那里的选择。
至于钉扎 - 稍后会看到:)