2017-10-16 12 views
0

최근 구조에서 정의 포인터리스트를 무효화하는 신속한 클래스 함수 주소를 할당하는 문제에 직면 스위프트 3.0 엑스 코드 8.0 코딩 시작함수를 SWIFT 3의 void 포인터 목록에 할당하는 동안 오류가 발생 했습니까?

file.h

typedef struct MYStruct 
{ 
    void ** funptr; //The list of function pointer addr 
    size_t funCount; 

} MYStruct; 

file1.swift

..... 
func Dummy() 
{ 

} 

func utility() 
{ 
    var myStructObj = MYStruct() 

    myStructObj.funptr = &Dummy() //Error: Cannot assign value of type '() -> Int32' to type 'UnsafeMutablePointer<UnsafeMutableRawPointer?>!' 

    ...... 

//는 것이다 C 함수, C 기능이 구조체를 통과해야 '

신속한 언어에서 알 수있는 바와 같이

답변

0

, 우리는 우리가 어떻게 같이 존중 직접 함수 주소를 얻을 수에-미리 감사합니다, 지연된 기능

cfunc(&myStructObj); 
...... 

} 

나를 해결하기 위해 제안하십시오 실행하기 위해 전화 프로그램을 구축하면 기호가 함수 주소를 얻기 위해 C '

신속한에서

, 유일한 방법은 당신이 기능 poin로 C 호출 루틴에 전달하는 데 필요한 기능의 기호를 얻을 수 objdump 또는 nm를 사용 ters

완전히 수동으로 처리합니다. 나는 이런 식으로 성취 할 수있다.