> On Apr 18, 2017, at 09:11 , Joe Groff <jgr...@apple.com> wrote:
> 
> 
>> On Apr 17, 2017, at 6:19 PM, Rick Mann via swift-users 
>> <swift-users@swift.org> wrote:
>> 
>> I'm trying to make a module out of a C library and header file. It has at 
>> least one empty struct:
>> 
>> struct lgs_context_t {};
>> 
>> and a function:
>> 
>> LGS_EXPORT struct lgs_context_t* lgs_init(const lgs_context_params_t* 
>> params);
>> 
>> Swift sees the function, I can call it and assign the result to a variable, 
>> but Xcode (as usual) fails to show me what it thinks the type is. So I can't 
>> declare a class member to hold the returned pointer.
>> 
>> I'm trying to declare the member like this:
>> 
>>   var        ctx: lgs_context_t?             //  Use of undeclared type 
>> 'lgs_context_t'
>> 
>> I finally tried calling it like this:
>> 
>>   let ctx: UnsafeMutablePointer = lgs_init(...)
>> 
>> and the resulting error message gave me OpaquePointer. But couldn't it just 
>> typealias lgs_context_t to OpaquePointer?
>> 
>> Is there any way to do this in the modulemap?
>> 
>> Thanks!
> 
> The compiler uses OpaquePointer for pointers to incomplete types in C. It 
> sounds like you left lgs_context_t declared but not defined in your header, 
> in other words you wrote 'struct lgs_context_t;' without braces. If it were 
> truly defined to be empty, then the type should have been imported.

It's defined with the braces (and nothing inside them).


-- 
Rick Mann
rm...@latencyzero.com


_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to