我使用Monotouch包装的Dll中的某些类存在一些问题。有些方法的Objective-C中的参数类型为(const char *),我在创建包装器时将其转换为字符串。 目前为止一切进展顺利。问题是我有一个类试图建立一个到一个url的套接字连接。我创建了一个字符串变量,其中包含url的名称,但在Dll的生成日志中,我总是看到特殊字符中的URL,例如“X”,它表示主机名未知。下面是两种方法中的OBJ-C和C#的例子:在Monotouch中包装常量char *
- (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编码字符串,但没有运气。
有没有人有一个想法,为什么发生这种情况?
由于
可能是垃圾(腐败)或编码问题。你能编辑你的问题,并显示原始定义以及如何将它们转换为C#吗? – poupou 2012-07-19 17:23:43
我编辑了我的问题。感谢poupou。 – Thabet 2012-07-19 17:40:27