我试图为这个项目编写一个绑定项目: https ://github.com/tolo/HHServices
该项目使用较低级别的 C 类:dns_sd.h。我不知道如何将它导入我的绑定项目。
我需要绑定的所有类都很好,除了这个:
#import <Foundation/Foundation.h>
#include <dns_sd.h> // Note this!
@interface HHServiceSupport : NSObject {
@private
CFRunLoopRef runLoop;
@protected
DNSServiceRef sdRef;
}
@property (nonatomic, readonly) DNSServiceRef sdRef;
@property (nonatomic, assign) DNSServiceErrorType lastError;
@property (nonatomic, readonly) BOOL hasFailed;
- (void) doDestroy;
- (void) dnsServiceError:(DNSServiceErrorType)error;
- (void) openConnection;
- (void) closeConnection;
@end
我对此的绑定看起来像:
[BaseType (typeof(NSObject))]
interface HHServiceSupport
{
// @private
// CFRunLoopRef runLoop;
// @protected
// DNSServiceRef sdRef;
//Do I bind the above??!
//@property (nonatomic, readonly) DNSServiceRef sdRef;
[Export("sdRef")]
DNSServiceRef SDRef { get; set; }
//@property (nonatomic, assign) DNSServiceErrorType lastError;
[Export("lastError")]
DNSServiceErrorType LastError { get; set; }
//@property (nonatomic, readonly) BOOL hasFailed;
[Export("hasFailed")]
bool HasFailed { get; set; }
//- (void) doDestroy;
[Export("doDestroy")]
void DoDestroy();
//- (void) dnsServiceError:(DNSServiceErrorType)error;
[Export("dnsServiceError:")]
void DnsServiceError(DNSServiceErrorType error);
//- (void) openConnection;
[Export("openConnection")]
void OpenConnection();
//- (void) closeConnection;
[Export("closeConnection")]
void CloseConnection();
}
因为我不知道如何引用 c 库 dns_sd.h,所以我没有对 DNSServiceRef、DNSServiceErrorType 等类的任何引用,所以库不会构建(说这些是未知的)。
我已经浏览了所有关于此的在线文档,但没有找到任何关于如何引用本机 c 库的内容。
我能找到的最接近的类似问题是:Refering to DNSSDObjects in dns_sd.h and DNSServiceResolve in MonoTouch which is unanswered.
任何帮助将不胜感激。
ps:我的最终目标是启用点对点Bonjour,这样我就可以在设备之间建立TCP套接字连接,而不是使用GameKit,因为那只是一场灾难。