我在使用 Monotouch 包装的 Dll 中的某些类时遇到了一些问题。一些方法在 Objective-C 中具有 (const char*) 类型的参数,我在创建包装器时将其转换为字符串。到目前为止一切进展顺利。问题是我有一个类尝试与 url 建立套接字连接。我创建了一个包含 url 名称的字符串变量,但在 Dll 的生成日志中,我总是看到带有特殊字符的 url,例如“X��”,它表示主机名未知。下面是 Obj-C 和 C# 中两种方法的示例:
- (BOOL) open:(const char*)method withUrl:(const char*)url withAsync:(BOOL)isAsync;
[Export ("open:withUrl:withAsync:")]
bool Open (string method, string url, bool isAsync);
还有一个:
- (id)init:(const char*)url onPort:(int)port andUseSSL:(BOOL)ssl;
[Export ("init:onPort:andUseSSL:")]
IntPtr Constructor (string url, int port, bool ssl);
第一个方法代表一个定制的httpRequest。我什至尝试使用 Encoding.UTF8 对字符串进行编码,但没有成功。
有人知道为什么会这样吗?
谢谢