私はまったく新しいものObjective C
で、それを使用して をラップしようとしていC-library
ます。main.m
wrap.m
とファイルがありwrap.h
ます。インクルードしたヘッダーファイルと@interface
ソースファイルに集めた@implementation
ものから、それぞれに何をインクルードすればよいのかよくわかりません。現在、私のメインファイルは次のとおりです。
int copy_data(struct archive *ar, struct archive *aw) {
for (;;) {
const void *buff;
size_t size;
off_t offset;
int r = archive_read_data_block(ar, &buff, &size, &offset);
if (r == ARCHIVE_EOF)
return (ARCHIVE_OK);
archive_write_data_block(aw, buff, size, offset);
}
}
int main(int argc, const char * argv[])
{
@autoreleasepool {
struct archive *a;
struct archive *ext;
struct archive_entry *entry;
int flags;
int r;
/* Select which attributes we want to restore. */
flags = ARCHIVE_EXTRACT_TIME;
flags |= ARCHIVE_EXTRACT_PERM;
flags |= ARCHIVE_EXTRACT_ACL;
flags |= ARCHIVE_EXTRACT_FFLAGS;
a = archive_read_new();
archive_read_support_format_all(a);
archive_read_support_compression_all(a);
ext = archive_write_disk_new();
archive_write_disk_set_options(ext, flags);
archive_write_disk_set_standard_lookup(ext);
r = archive_read_open_filename(a, argv[1], 10240);
for (;;) {
r = archive_read_next_header(a, &entry);
if (r == ARCHIVE_EOF)
break;
r = archive_write_header(ext, entry);
if (archive_entry_size(entry) > 0) {
copy_data(a, ext);
}
archive_write_finish_entry(ext);
}
archive_read_close(a);
archive_read_free(a);
archive_write_close(ext);
archive_write_free(ext);
NSLog(@"No Issues");
}
return 0;
}
これまでのところ、wrap.h
ファイルに入っているのは次のとおりです。
typedef struct{
int *a;
int *ext;
}archive;
@interface main : NSObject
@property int flags;
@property int r;
それが私がしなければならないことに近いかどうかはわかりません。また、ARCHIVE_EXTRACT
宣言されていない識別子であり、wrap.h
ファイルにも入力する必要があるとエラーが表示されますが、その方法がわかりません。どんな助けでも大歓迎です!