热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

macdylib的编写

源码:https:github.comhaidragonmydylib创建一个dylib项目源码:main.mtestdylib.mtestdyli

源码:
https://github.com/haidragon/mydylib
创建一个dylib项目
源码:
main.m

//
// testdylib.m
// testdylib
//
// Created by haidragon on 2019/4/3.
// Copyright © 2019 haidragon. All rights reserved.
//#import "testdylib.h"
#import
@implementation testdylib : NSObject@end
__attribute__((constructor)) void DylibMain1(){NSAlert *alert = [NSAlert alertWithMessageText:@"MessageBox"defaultButton:@"defaultButton"alternateButton:@"alternateButton"otherButton:@"otherButton"informativeTextWithFormat:@"DylibMain1"];NSUInteger action = [alert runModal];//响应window的按钮事件
// if(action == NSAlertDefaultReturn)
// {
// NSLog(@"defaultButton clicked!");
// }
// else if(action == NSAlertAlternateReturn )
// {
// NSLog(@"alternateButton clicked!");
// }
// else if(action == NSAlertOtherReturn)
// {
// NSLog(@"otherButton clicked!");
// }
}
__attribute__((constructor)) void DylibMain2(){NSAlert *alert = [NSAlert alertWithMessageText:@"MessageBox"defaultButton:@"defaultButton"alternateButton:@"alternateButton"otherButton:@"otherButton"informativeTextWithFormat:@"DylibMain2"];NSUInteger action = [alert runModal];//响应window的按钮事件// if(action == NSAlertDefaultReturn)// {// NSLog(@"defaultButton clicked!");// }// else if(action == NSAlertAlternateReturn )// {// NSLog(@"alternateButton clicked!");// }// else if(action == NSAlertOtherReturn)// {// NSLog(@"otherButton clicked!");// }
}
void __attribute__ ((destructor)) unload(void){NSAlert *alert = [NSAlert alertWithMessageText:@"MessageBox"defaultButton:@"defaultButton"alternateButton:@"alternateButton"otherButton:@"otherButton"informativeTextWithFormat:@"unload"];NSUInteger action = [alert runModal];//响应window的按钮事件// if(action == NSAlertDefaultReturn)// {// NSLog(@"defaultButton clicked!");// }// else if(action == NSAlertAlternateReturn )// {// NSLog(@"alternateButton clicked!");// }// else if(action == NSAlertOtherReturn)// {// NSLog(@"otherButton clicked!");// }
}

创建加载程序
源码
exe.m

//
// main.m
// testexe
//
// Created by haidragon on 2019/4/3.
// Copyright © 2019 haidragon. All rights reserved.
//#import
#import
#include
int main(int argc, const char * argv[]) {@autoreleasepool {void* handle = dlopen("/Users/haidragon/Library/Developer/Xcode/DerivedData/testdylib-fgxcocyqbpxowtbcuglxlehxutzv/Build/Products/Debug/libtestdylib.dylib", RTLD_LAZY);printf("%x",handle);// insert code here...NSLog(@"Hello, World!");// NSAlert *alert = [NSAlert alertWithMessageText:@"messageText"
// defaultButton:@"defaultButton"
// alternateButton:@"alternateButton"
// otherButton:@"otherButton"
// informativeTextWithFormat:@"informativeText"];
//
// NSUInteger action = [alert runModal];
// //响应window的按钮事件
// if(action == NSAlertDefaultReturn)
// {
// NSLog(@"defaultButton clicked!");
// }
// else if(action == NSAlertAlternateReturn )
// {
// NSLog(@"alternateButton clicked!");
// }
// else if(action == NSAlertOtherReturn)
// {
// NSLog(@"otherButton clicked!");
// }}return 0;
}

运行程序
构造函数1
macdylib的编写
构造函数2

macdylib的编写
析构
macdylib的编写

转:https://blog.51cto.com/haidragon/2378084



推荐阅读
author-avatar
mobiledu2502884963
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有