BWH*_*zel 2 .net c pinvoke winapi interop
我是C和C++中纯Windows API级功能的完全新手,并且最近一直在尝试使用.NET互操作性.我已经构建了一个简单的库,它已经成功地将数值(int/float等)返回给.NET调用者,但是我没有运气好的字符串.
我尝试了各种不同的数据类型,但似乎都没有:LPSTR,LPCSTR,LPCTSTR和LPCWSTR.不可否认,我没有尝试过char*.此外,一旦设置了一个方法来返回一个字符串,它是否需要.NET作为特定数据类型进行编组,还是可以直接读入System.String对象?我已经尝试解析为IntPtr然后转换为字符串,但这不起作用.
执行Windows API的功能.它通常不返回指针,它填充您传入的缓冲区.
托管代码:
[DllImport("YourLibrary", CharSet = CharSet.Auto)]
static extern Int32 SomeArbitraryFunction (
String input, // string passed to API (LPCSTR)
StringBuilder output, // output filled by API (LPSTR)
Int32 outputMaxLen // StringBuilder.Capacity
);
Run Code Online (Sandbox Code Playgroud)
在C/C++方面:
DWORD WINAPI SomeArbitraryFunction (
LPCSTR input,
LPSTR output,
DWORD outputMaxLen
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
194 次 |
| 最近记录: |