Re: Cocoa dylib access by C program
Re: Cocoa dylib access by C program
- Subject: Re: Cocoa dylib access by C program
- From: Martin Wierschin via Cocoa-dev <email@hidden>
- Date: Fri, 13 Nov 2020 11:42:11 -0800
A nice way to do this is to have a bridge header file that only declares C
functions. The corresponding .m source code file will have C functions that
natively call Objective-C methods. This same header can be included in .c files
without any trouble, letting them have access to Obj-C code via the bridge's C
functions.
Basically structure your files something like this:
**************** MyBridge.h
extern void DoObjectiveCStuff();
**************** MyBridge.m
#import <Foundation/Foundation.h>
void DoObjectiveCStuff()
{
NSLog(@"Hooray, calling Obj-C methods...");
[NSArray arrayWithCapacity:32];
}
**************** pure.c
#include "MyBridge.h"
void RegularFunction()
{
DoObjectiveCStuff();
}
I hope that helps!
~Martin Wierschin
> On Nov 13, 2020, at 11:16 AM, Carl Hoefs via Cocoa-dev
> <email@hidden> wrote:
>
> I have built an ObjC/Cocoa/Foundation library.dylib; it works well when
> linked with ObjC apps.
>
> But now I need to link a C program against that library. How do I invoke the
> ObjC library methods from a C program? (I know I can add C function entry
> points to the library, but how do they invoke the internal ObjC library
> methods?)
>
> -Carl
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden