基于ManagedDataAccess开发的OracleDBHelpe工具集伸手党的福音

在使用前先加入ManagedDataAccessDLL文件方可使用

添加方法:右键项目。点击管理NuGet程序包,点击浏览,在输入框内输入ManagedDataAccess,再点击安装即可

OracleDBHelper代码如下(Copy直接用)

    /// <summary>
    ///基於.net( 向下兼容4.0)開發 OracleDBHelper工具類
    ///<para>作者: 害羞的青蛙</para>
    ///<para>時間: 2019-12-6</para>
    /// </summary>
    public static class OracleDBHelper
    {
        /// <summary>
        /// 執行SQL語句返回DataTable
        /// </summary>
        /// <param name="SQL">SQL語句</param>
        /// <param name="DBUrl">數據庫鏈接地址</param>
        /// <returns></returns>
        public static DataTable GetDataTableBySQL(string SQL,string DBUrl)
        {
            // 获取与数据库的连接对象並且绑定连接字符串
            OracleConnection conn = new OracleConnection(DBUrl);
            conn.Open();//打開資源
             //获取数据库操作对象
            OracleCommand cmd = conn.CreateCommand();
            try
            {
                cmd.CommandText = SQL;
                OracleDataAdapter adapter = new OracleDataAdapter(cmd);
                DataTable dataTable = new DataTable();
                adapter.Fill(dataTable);
                cmd.Dispose();//釋放資源
                conn.Dispose();//釋放資源
                conn.Close();//關閉
                return dataTable;
            }
            catch (Exception ex)
            {
                cmd.Dispose();//釋放資源
                conn.Dispose();//釋放資源
                conn.Close();//關閉
                throw ex;
            }
        }
        /// <summary>
        /// 執行非查詢的SQL語句
        /// </summary>
        /// <param name="SQL">SQL語句</param>
        /// <param name="DBUrl">數據庫鏈接地址</param>
        /// <returns></returns>
        public static int GetNonQueryBySQL(string SQL, string DBUrl)
        {
            // 获取与数据库的连接对象並且绑定连接字符串
            OracleConnection conn = new OracleConnection(DBUrl);
            conn.Open();//打開資源
           //获取数据库操作对象
            OracleCommand cmd = conn.CreateCommand();
            try
            {
                cmd.CommandText = SQL;
                int num = cmd.ExecuteNonQuery();
                cmd.Dispose();//釋放資源
                conn.Dispose();//釋放資源
                conn.Close();//關閉
                return num;
            }
            catch (Exception ex)
            {
                cmd.Dispose();//釋放資源
                conn.Dispose();//釋放資源
                conn.Close();//關閉
                throw ex;
            }
        }
        /// <summary>
        /// 執行多條SQL語句,實現數據庫事務。
        /// </summary>
        /// <param name="SQLStringList">多條SQL語句</param>
        /// <param name="BDUrl">數據庫鏈接地址</param>
        public static int GetNonQueryByManySQL(ArrayList SQLStringList,string BDUrl)
        {
            using (OracleConnection conn = new OracleConnection(BDUrl))
            {
                conn.Open();
                OracleCommand cmd = new OracleCommand();
                cmd.Connection = conn;
                OracleTransaction tx = conn.BeginTransaction();
                cmd.Transaction = tx;
                try
                {
                    int num = 0;
                    for (int i = 0; i < SQLStringList.Count; i++)
                    {
                        string SQL = SQLStringList[i].ToString();//獲取SQL語句
                        if (SQL.Trim().Length > 1)
                        {
                            cmd.CommandText = SQL;
                             num=cmd.ExecuteNonQuery();
                        }
                        tx.Commit();//提交事務
                        cmd.Dispose();//釋放資源
                        conn.Dispose();//釋放資源
                        conn.Close();//關閉

                    }
                    return num;//返回執行結果數量
                }
                catch (OracleException E)
                {
                    tx.Rollback();//事務回滾
                    throw new Exception(E.Message);
                }
            }
        }
        /// <summary>
        /// 調用存儲返回單個游標結果集(最後一個位置必須為游標,位置不能顛倒)
        /// <para>obj使用方法:new{ v_data=value, v_data1=value1,out_cursor=""}</para>
        /// <para>注意:obj中v_data為存儲參數名稱,value為對應的值, out_cursor為游標不需要輸入值</para>
        /// </summary>
        /// <param name="storageName">存儲名稱</param>
        /// <param name="DBUrl">數據庫鏈接地址</param>
        /// <param name="obj">存儲參數對象</param>
        /// <returns></returns>
        public static DataTable GetDataTable(string storageName, string DBUrl, object obj ) {
            // 获取与数据库的连接对象並且绑定连接字符串
            OracleConnection conn = new OracleConnection(DBUrl);
            conn.Open();//打開資源
            //获取数据库操作对象
            OracleCommand cmd = conn.CreateCommand();
            try
            {
                cmd.CommandText = storageName;//存儲名稱
                cmd.CommandType = CommandType.StoredProcedure;
                PropertyInfo[] properties = obj.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public);//獲取object中的字段名和值
                for (int i = 0; i < properties.Length; i++)
                {
                    if (i == (properties.Length - 1))
                    {//設定輸出的類型和值
                        cmd.Parameters.Add(properties[i].Name, OracleDbType.RefCursor).Direction = ParameterDirection.Output;
                        cmd.Parameters[properties[i].Name].Value = DBNull.Value;//賦值
                    }
                    else {//設定輸入的類型和值
                        cmd.Parameters.Add(properties[i].Name, OracleDbType.Varchar2).Direction = ParameterDirection.Input;
                        cmd.Parameters[properties[i].Name].Value = properties[i].GetValue(obj, null);//賦值
                    }
                }
                DataTable dataTable = new DataTable();
                OracleDataAdapter oda = new OracleDataAdapter(cmd);
                oda.Fill(dataTable);
                cmd.Dispose();//釋放資源
                conn.Dispose();//釋放資源
                conn.Close();//關閉
                return dataTable;
            }
            catch (Exception ex)
            {
                cmd.Dispose();//釋放資源
                conn.Dispose();//釋放資源
                conn.Close();//關閉
                throw ex;
            }
        }
        /// <summary>
        /// 調用存儲返回String字符串信息(最後一個位置必須為String類型字符,位置不能顛倒)
        /// <para>obj使用方法:new{ v_data=value, v_data1=value1,out_string=""}</para>
        /// <para>注意:obj中v_data為存儲參數名稱,value為對應的值,out_string為輸出參數不需要輸入值</para>
        /// </summary>
        /// <param name="storageName"></param>
        /// <param name="DBUrl"></param>
        /// <param name="obj"></param>
        /// <returns></returns>
        public static string GetStringData(string storageName, string DBUrl, object obj)
        {
            OracleConnection conn = new OracleConnection(DBUrl);
            conn.Open();
            //获取数据库操作对象
            OracleCommand cmd = conn.CreateCommand();
            try
            {
                cmd.CommandText = storageName;//存儲名稱
                cmd.CommandType = CommandType.StoredProcedure;
                PropertyInfo[] properties = obj.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public);//獲取object中的字段名和值
                for (int i = 0; i < properties.Length; i++)
                {
                    if (i == (properties.Length - 1))
                    { //設定輸出的類型和值
                        cmd.Parameters.Add(properties[i].Name, OracleDbType.Varchar2, short.MaxValue).Direction = ParameterDirection.Output;
                        cmd.Parameters[properties[i].Name].Value = DBNull.Value;//賦值
                    }
                    else
                    {//設定輸入的類型和值
                        cmd.Parameters.Add(properties[i].Name, OracleDbType.Varchar2).Direction = ParameterDirection.Input;
                        cmd.Parameters[properties[i].Name].Value = properties[i].GetValue(obj, null);//賦值
                    }
                }
                cmd.ExecuteNonQuery();
                string message = cmd.Parameters[properties[properties.Length - 1].Name].Value.ToString();//獲取返回的值
                cmd.Dispose();//釋放資源
                conn.Dispose();//釋放資源
                conn.Close();//關閉
                return message;
            }
            catch (Exception ex)
            {
                cmd.Dispose();//釋放資源
                conn.Dispose();//釋放資源
                conn.Close();//關閉
                throw ex;
            }
        }
        /// <summary>
        /// 調用存儲返回String字符串信息和DataTable數據表格(最後兩個位置必須為返回參數,一個為輸出字符串另一個為游標,位置不能顛倒)
        /// <para>obj使用方法:new{ v_data=value, v_data1=value1,out_string="",out_cursor=""}</para>
        /// <para>注意:obj中v_data為存儲參數名稱,value為對應的值,out_string為輸出參數不需要輸入值, out_cursor為游標不需要輸入值</para>
        /// </summary>
        /// <param name="storageName">存儲名稱</param>
        /// <param name="DBUrl">數據庫鏈接地址</param>
        /// <param name="obj">存儲參數對象</param>
        /// <param name="dataTable">返回結果集</param>
        /// <returns></returns>
        public static string GetStringAndDataTable(string storageName, string DBUrl, object obj,out DataTable dataTable)
        {
            // 获取与数据库的连接对象並且绑定连接字符串
            OracleConnection conn = new OracleConnection(DBUrl);
            conn.Open();//打開資源
            //获取数据库操作对象
            OracleCommand cmd = conn.CreateCommand();
            try
            {
                cmd.CommandText = storageName;//存儲名稱
                cmd.CommandType = CommandType.StoredProcedure;
                PropertyInfo[] properties = obj.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public);//獲取object中的字段名和值
                for (int i = 0; i < properties.Length; i++)
                {
                    if (i == (properties.Length - 2))
                    {//設定輸出的類型和值
                        cmd.Parameters.Add(properties[i].Name, OracleDbType.Varchar2, short.MaxValue).Direction = ParameterDirection.Output;
                        cmd.Parameters[properties[i].Name].Value = DBNull.Value;//賦值
                    }
                    else if (i == (properties.Length - 1))
                    {//設定輸出的類型和值
                        cmd.Parameters.Add(properties[i].Name, OracleDbType.RefCursor).Direction = ParameterDirection.Output;
                        cmd.Parameters[properties[i].Name].Value = DBNull.Value;//賦值
                    }
                    else
                    {//設定輸入的類型和值
                        cmd.Parameters.Add(properties[i].Name, OracleDbType.Varchar2).Direction = ParameterDirection.Input;
                        cmd.Parameters[properties[i].Name].Value = properties[i].GetValue(obj, null);//賦值
                    }
                }
                DataTable dt = new DataTable();
                OracleDataAdapter oda = new OracleDataAdapter(cmd);
                oda.Fill(dt);
                dataTable = dt;//返回數據結果集
                string message= cmd.Parameters[properties[properties.Length - 2].Name].Value.ToString();//獲取輸出的字符串
                cmd.Dispose();//釋放資源
                conn.Dispose();//釋放資源
                conn.Close();//關閉
                return message;
            }
            catch (Exception ex)
            {
                cmd.Dispose();//釋放資源
                conn.Dispose();//釋放資源
                conn.Close();//關閉
                throw ex;
            }
        }

    }

  

/// <summary>        /// 執行SQL語句返回DataTable        /// </summary>        /// <param name="SQL">SQL語句</param>        /// <param name="DBUrl">數據庫鏈接地址</param>        /// <returns></returns>        public static DataTable GetDataTableBySQL(string SQL,string DBUrl)        {            // 获取与数据库的连接对象並且绑定连接字符串            OracleConnection conn = new OracleConnection(DBUrl);            conn.Open();//打開資源             //获取数据库操作对象            OracleCommand cmd = conn.CreateCommand();            try            {                cmd.CommandText = SQL;                OracleDataAdapter adapter = new OracleDataAdapter(cmd);                DataTable dataTable = new DataTable();                adapter.Fill(dataTable);                cmd.Dispose();//釋放資源                conn.Dispose();//釋放資源                conn.Close();//關閉                return dataTable;            }            catch (Exception ex)            {                cmd.Dispose();//釋放資源                conn.Dispose();//釋放資源                conn.Close();//關閉                throw ex;            }        }        /// <summary>        /// 執行非查詢的SQL語句        /// </summary>        /// <param name="SQL">SQL語句</param>        /// <param name="DBUrl">數據庫鏈接地址</param>        /// <returns></returns>        public static int GetNonQueryBySQL(string SQL, string DBUrl)        {            // 获取与数据库的连接对象並且绑定连接字符串            OracleConnection conn = new OracleConnection(DBUrl);            conn.Open();//打開資源           //获取数据库操作对象            OracleCommand cmd = conn.CreateCommand();            try            {                cmd.CommandText = SQL;                int num = cmd.ExecuteNonQuery();                cmd.Dispose();//釋放資源                conn.Dispose();//釋放資源                conn.Close();//關閉                return num;            }            catch (Exception ex)            {                cmd.Dispose();//釋放資源                conn.Dispose();//釋放資源                conn.Close();//關閉                throw ex;             }        }        /// <summary>        /// 執行多條SQL語句,實現數據庫事務。        /// </summary>        /// <param name="SQLStringList">多條SQL語句</param>                /// <param name="BDUrl">數據庫鏈接地址</param>             public static int GetNonQueryByManySQL(ArrayList SQLStringList,string BDUrl)        {            using (OracleConnection conn = new OracleConnection(BDUrl))            {                conn.Open();                OracleCommand cmd = new OracleCommand();                cmd.Connection = conn;                OracleTransaction tx = conn.BeginTransaction();                cmd.Transaction = tx;                try                {                    int num = 0;                    for (int i = 0; i < SQLStringList.Count; i++)                    {                        string SQL = SQLStringList[i].ToString();//獲取SQL語句                        if (SQL.Trim().Length > 1)                        {                            cmd.CommandText = SQL;                             num=cmd.ExecuteNonQuery();                        }                        tx.Commit();//提交事務                        cmd.Dispose();//釋放資源                        conn.Dispose();//釋放資源                        conn.Close();//關閉
                    }                    return num;//返回執行結果數量                }                catch (OracleException E)                {                    tx.Rollback();//事務回滾                    throw new Exception(E.Message);                }            }        }        /// <summary>        /// 調用存儲返回單個游標結果集(最後一個位置必須為游標,位置不能顛倒)        /// <para>obj使用方法:new{ v_data=value, v_data1=value1,out_cursor=""}</para>        /// <para>注意:obj中v_data為存儲參數名稱,value為對應的值, out_cursor為游標不需要輸入值</para>        /// </summary>        /// <param name="storageName">存儲名稱</param>        /// <param name="DBUrl">數據庫鏈接地址</param>        /// <param name="obj">存儲參數對象</param>        /// <returns></returns>        public static DataTable GetDataTable(string storageName, string DBUrl, object obj ) {            // 获取与数据库的连接对象並且绑定连接字符串            OracleConnection conn = new OracleConnection(DBUrl);            conn.Open();//打開資源            //获取数据库操作对象            OracleCommand cmd = conn.CreateCommand();            try            {                cmd.CommandText = storageName;//存儲名稱                cmd.CommandType = CommandType.StoredProcedure;                PropertyInfo[] properties = obj.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public);//獲取object中的字段名和值                for (int i = 0; i < properties.Length; i++)                {                    if (i == (properties.Length - 1))                    {//設定輸出的類型和值                        cmd.Parameters.Add(properties[i].Name, OracleDbType.RefCursor).Direction = ParameterDirection.Output;                        cmd.Parameters[properties[i].Name].Value = DBNull.Value;//賦值                    }                    else {//設定輸入的類型和值                        cmd.Parameters.Add(properties[i].Name, OracleDbType.Varchar2).Direction = ParameterDirection.Input;                        cmd.Parameters[properties[i].Name].Value = properties[i].GetValue(obj, null);//賦值                    }                }                DataTable dataTable = new DataTable();                OracleDataAdapter oda = new OracleDataAdapter(cmd);                oda.Fill(dataTable);                cmd.Dispose();//釋放資源                conn.Dispose();//釋放資源                conn.Close();//關閉                return dataTable;            }            catch (Exception ex)            {                cmd.Dispose();//釋放資源                conn.Dispose();//釋放資源                conn.Close();//關閉                throw ex;            }        }        /// <summary>        /// 調用存儲返回String字符串信息(最後一個位置必須為String類型字符,位置不能顛倒)        /// <para>obj使用方法:new{ v_data=value, v_data1=value1,out_string=""}</para>        /// <para>注意:obj中v_data為存儲參數名稱,value為對應的值,out_string為輸出參數不需要輸入值</para>        /// </summary>        /// <param name="storageName"></param>        /// <param name="DBUrl"></param>        /// <param name="obj"></param>        /// <returns></returns>        public static string GetStringData(string storageName, string DBUrl, object obj)        {            OracleConnection conn = new OracleConnection(DBUrl);            conn.Open();            //获取数据库操作对象            OracleCommand cmd = conn.CreateCommand();            try            {                cmd.CommandText = storageName;//存儲名稱                cmd.CommandType = CommandType.StoredProcedure;                PropertyInfo[] properties = obj.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public);//獲取object中的字段名和值                for (int i = 0; i < properties.Length; i++)                {                    if (i == (properties.Length - 1))                    { //設定輸出的類型和值                        cmd.Parameters.Add(properties[i].Name, OracleDbType.Varchar2, short.MaxValue).Direction = ParameterDirection.Output;                        cmd.Parameters[properties[i].Name].Value = DBNull.Value;//賦值                    }                    else                    {//設定輸入的類型和值                        cmd.Parameters.Add(properties[i].Name, OracleDbType.Varchar2).Direction = ParameterDirection.Input;                        cmd.Parameters[properties[i].Name].Value = properties[i].GetValue(obj, null);//賦值                    }                }                cmd.ExecuteNonQuery();                string message = cmd.Parameters[properties[properties.Length - 1].Name].Value.ToString();//獲取返回的值                cmd.Dispose();//釋放資源                conn.Dispose();//釋放資源                conn.Close();//關閉                return message;            }            catch (Exception ex)            {                cmd.Dispose();//釋放資源                conn.Dispose();//釋放資源                conn.Close();//關閉                throw ex;            }        }        /// <summary>        /// 調用存儲返回String字符串信息和DataTable數據表格(最後兩個位置必須為返回參數,一個為輸出字符串另一個為游標,位置不能顛倒)        /// <para>obj使用方法:new{ v_data=value, v_data1=value1,out_string="",out_cursor=""}</para>        /// <para>注意:obj中v_data為存儲參數名稱,value為對應的值,out_string為輸出參數不需要輸入值, out_cursor為游標不需要輸入值</para>        /// </summary>        /// <param name="storageName">存儲名稱</param>        /// <param name="DBUrl">數據庫鏈接地址</param>        /// <param name="obj">存儲參數對象</param>        /// <param name="dataTable">返回結果集</param>        /// <returns></returns>        public static string GetStringAndDataTable(string storageName, string DBUrl, object obj,out DataTable dataTable)        {            // 获取与数据库的连接对象並且绑定连接字符串            OracleConnection conn = new OracleConnection(DBUrl);            conn.Open();//打開資源            //获取数据库操作对象            OracleCommand cmd = conn.CreateCommand();            try            {                cmd.CommandText = storageName;//存儲名稱                cmd.CommandType = CommandType.StoredProcedure;                PropertyInfo[] properties = obj.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public);//獲取object中的字段名和值                for (int i = 0; i < properties.Length; i++)                {                    if (i == (properties.Length - 2))                    {//設定輸出的類型和值                        cmd.Parameters.Add(properties[i].Name, OracleDbType.Varchar2, short.MaxValue).Direction = ParameterDirection.Output;                        cmd.Parameters[properties[i].Name].Value = DBNull.Value;//賦值                    }                    else if (i == (properties.Length - 1))                    {//設定輸出的類型和值                        cmd.Parameters.Add(properties[i].Name, OracleDbType.RefCursor).Direction = ParameterDirection.Output;                        cmd.Parameters[properties[i].Name].Value = DBNull.Value;//賦值                    }                    else                    {//設定輸入的類型和值                        cmd.Parameters.Add(properties[i].Name, OracleDbType.Varchar2).Direction = ParameterDirection.Input;                        cmd.Parameters[properties[i].Name].Value = properties[i].GetValue(obj, null);//賦值                    }                }                DataTable dt = new DataTable();                OracleDataAdapter oda = new OracleDataAdapter(cmd);                oda.Fill(dt);                dataTable = dt;//返回數據結果集                string message= cmd.Parameters[properties[properties.Length - 2].Name].Value.ToString();//獲取輸出的字符串                cmd.Dispose();//釋放資源                conn.Dispose();//釋放資源                conn.Close();//關閉                return message;            }            catch (Exception ex)            {                cmd.Dispose();//釋放資源                conn.Dispose();//釋放資源                conn.Close();//關閉                throw ex;            }        }

原文地址:https://www.cnblogs.com/ShyFrog/p/11993093.html

时间: 2024-08-03 00:12:02

基于ManagedDataAccess开发的OracleDBHelpe工具集伸手党的福音的相关文章

Open Source 开发工具集

转自:http://www.linuxforum.net原作者:gogoliu(Pooh-Bah) 编辑器: vi:老牌编辑器,在各个unix和unix-like平台都可以找到 emacs:GNU项目开发的编辑器,功能强大扩展性强,绝对不是一个编辑器那么简单 代码打补丁工具: diff & patch:一对好搭挡,diff用来生成代码补丁,而patch则用来给代码打补丁 项目构建工具: make(Makefile):常用的项目构建工具,用一个Makefile就可以从整个项目的代码中构建各个目标 

基于msys2工具集,自编译gcc-6.2.0、Qt-5.6.1-1和Qt-4.8.7(有nuwen.net网站提供的脚本)

好久没更新(其实大可不要经常更新吧),一直都是用Qt4,最近想着转向Qt5了,msys2是自带Qt的,但工具链经常会更新,依赖也较多,简便才方便,做了最后一组Qt工具的更新,如题,Qt-4.8.7作为QT4大版本的压箱底版本了,使用gcc-6.2.0重新编译,只有32位版本,以后不再更新,Qt-5.6.1-1则只有64位版本,QtCreator-4.0.3基于Qt-5.6.1-1编译,也只有64位版本.其它的,msys2为最小版本,如需更多的工具支持,可使用pacman更新安装,修改了msys2

[枫叶学院] Unity3d高级开发教程 工具集(一) 哈希列表——强大的自定义数据集

在日常开发中,数据集合是我们必不可少的重要工具之一.在C#中,.Net Framework也为我们提供了种类繁多,功能多样的数据集工具.在此,我基于List<T> 和 HashTable制作了一个功能强大的数据集,我将其命名为HashList.他集二者的优势于一身,既支持数组索引的操作,同时也支持键值对操作.我更在此基础上封装了一些常用的工具函数,使其能够极大的方便我们日常开发中的数据管理. HashList 核心功能如下: 1.类型安全的数据集合,省去了强制转换的繁冗操作 2.根据数组索引,

BEGINNING SHAREPOINT&#174; 2013 DEVELOPMENT 第3章节--SharePoint 2013 开发人员工具 SharePoint中基于Web开发

BEGINNING SHAREPOINT? 2013 DEVELOPMENT 第3章节--SharePoint 2013 开发人员工具 SharePoint中基于Web开发 之前提到过,定义SharePoint开发有多种方法.作为高级用户,你可能使用更多原生SharePoint功能在基于Web环境做开发.高级用户典型地在SharePoint站点有逐步上升的权限,并且能够完成以下任务: 创建和管理网站集与网站权限. 配置站点主题. 添加Apps到站点. 为网站中使用创建并部署多媒体. 配置和自定义

常用的前端开发插件与工具合集

常用的前端开发插件与工具合集 Font Awesome字体图标插件 Font Awesome的矢量图标,将使您的网站在视网膜级的高分屏上大放异彩. 完美兼容其它框架 尽管是为Bootstrap设计,但Font Awesome同样能与其它框架完美协同运作. Font Awesome https://fontawesome.com/ SweetAlert系列(数据Ajax)插件 SweetAlert 是 JavaScript 原生 'alert' 弹窗的完美替代品... SweetAlert 让弹窗

Linux开发工具集

最近工作学了不少linux下的新东西,下面这些工具主要针对c/c++,以后慢慢补充一些好用的工具. 编辑器 vim emacs kate(KDE下一个功能强大的编辑器) IDE(集成开发环境) eclipse+cdt clion qt cteator 编译器 gcc g++ clang 调试器 gdb 构建工具 cmake make 内存工具 Purify Valgrind工具集 KCachegrind 剖析工具 gprof开源剖析工具,通常作为gcc编译器的一部分. Quantify是IBM的

微信公众平台开发工具集

方倍工作室开发了一系列的微信公众平台工具集. 微信基础消息调试器 地址:http://www.fangbei.org/tool/message 功能:调试微信基础消息,包括文本.图文.语音.多图文.位置.菜单.链接等消息的收发. 微信公众号类型检测器 地址:http://www.fangbei.org/tool/typecheck 功能:获取Access Token,并检测是订阅号还是服务号,以及是否认证. 微信消息调试器 地址:http://www.fangbei.org/tool/messa

Makefile 学习&amp;binutils工具集,软件开发利器

gcc -E 能有效的帮助我们解决与宏有关的编译错误: gcc -S能获得一个C源程序文件的汇编程序: gcc -v能获得系统头文件的路径 生成依赖关系: gcc -M gcc -MM 生成不包含系统头文件的依赖关系 指定链接库: gcc -L:告诉gcc可以从哪个目录查找库文件: gcc -l :用于告诉gcc在生成可执行程序时需要链接的库名: 一.静态库生成步骤如下:步骤一:生成 str_out.o 目标文件gcc -c str_out.c注:不加 -o 则生成同名的 *.o 目标文件(st

安卓快速开发工具集

安卓快速开发工具集 快速开发,能简便开发过程,节省时间. 下载地址:http://www.devstore.cn/code/info/805.html 包含文件: