C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 강좌/문서
C++Builder Programming Tutorial&Docments
[213] Objective C에서 C를 링크하여 사용하는 방법
김호광 [testcode] 27230 읽음    2010-07-19 13:35
Objective C에서 C를 링크하여 사용하는 방법

Objective C는 하이브리드 언어입니다. 한마디로 잡종 언어입니다. 자바와 같이 가비지 컬레션이 있어서 delete를 사용할 필요가 없다고 주장하는 언어입니다.

그러나 많은 라이브러리를 두고 Objective C로 전향할 때 피해가 막심하고 C의 개발 속도 문제로 인해서 연동할 필요성이 대두됩니다.


1. 확장자가 *.c 인 파일을 *.m으로 변경합니다.
2. #import 라는 키워드를 사용합니다.



#import "teestcode.h"

static void hello (int x, int y)
{
// 마구 c를 써주마
}

@implementation testcode

static void hello_c_world(int x, char *p)
{
// 마구 c를 써주마
}

- (id)myMethod
{

}

@end

static id funcC(id obj)
{
//
}

여튼 쓸 수 있습니다. 기타 언어도 연결 가능합니다.

이런 예제도 있습니다.

s Marc points out, you're probably using a reference to the OBJC object that is un-initialised outside the objective-c scope.

Here's a working sample of C code calling an ObjC object's method:

#import <Cocoa/Cocoa.h>

id refToSelf;

@interface SomeClass: NSObject
@end

@implementation SomeClass
- (void) doNothing
{
        NSLog(@"Doing nothing");
}
@end

int otherCfunction()
{
        [refToSelf doNothing];
}


int main()
{

    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

    SomeClass * t = [[SomeClass alloc] init];
    refToSelf = t;

    otherCfunction();

    [pool release];
}

--------------------------
궁금한 사항은..

http://www.faqs.org/faqs/computer-lang/Objective-C/faq/

에 물어보세요

testcode~
용맨소녀 [doyongid]   2010-07-19 13:37 X
굿~
Lyn [tohnokanna]   2010-07-19 14:43 X
컴맹이라 그러지마요 ㅡㅜ

살기힘들어질라그럼
초보자 [huss5210]   2010-07-28 13:11 X
고수가 저런말씀을... 하수는 살지말아야 하나;;ㅜㅜ;;
제리압빠. [kamizen]   2012-01-17 09:16 X
오브젝트 C를 요즘 취미로 하고 있어서 C 기반 랭기지와는 또다른 맛이랄까... 재미 있군요.

+ -

관련 글 리스트
213 Objective C에서 C를 링크하여 사용하는 방법 김호광 27230 2010/07/19
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.