在RadASM中导入masm32项目和win32汇编odbc示例
以下以罗云琳《Win32汇编程序设计》第18章odbc例子为例;在RadASM中导入该项目,并为该项目略添加功能;
一 masm32 项目导入radasm
先看一下radasm示例项目的结构如下;
新建工程,masm编译器,工程类型Win32;
没有模板;
不创建任何文件;
这是向导的最后一步;
可以右击文件夹单个导入文件;但是此种方式导入的文件不会复制到项目文件夹下;
重新再来;点击向导界面的 导入 按钮,在导入对话框中选择路径,并对文件做如下选择;
导入以后的情况如下;但是此时构建会出现rc不编译;
重新再来;把odbc.rc也选为主文件;
这下导入后基本可以了;虽然不知为何asm文件跑到Resources文件夹,不过可编译运行;
二 关于 - undefined keyword or key name
至于原程序中的#include <resource.h>,把它注释了;编译出现,
error RC2104 : undefined keyword or key name: WS_CHILD
类似错误时,打开radasm自带的resource.h,把WS_CHILD等常量定义拷贝到.rc中即可;
三 为odbc示例添加小功能
下面增加一个小功能,修改资源文件,添加一个按钮和灰色文本框,点击 浏览 按钮,执行一条预先赋值的SQL;
并且需要在主asm文件中添加对应的常量定义和代码;下面是执行效果;
下面给出主asm文件和资源文件代码;其他文件和原程序同;
odbcaddr7.rc
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
//#include <resource.h>
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#define DS_MODALFRAME 0x80L
#define WS_POPUP 0x80000000L
#define WS_VISIBLE 0x10000000L
#define WS_CAPTION 0x00C00000L
#define WS_SYSMENU 0x00080000L
#define WS_THICKFRAME 0x00040000L
#define ES_AUTOHSCROLL 0x0080L
#define WS_BORDER 0x00800000L
#define WS_TABSTOP 0x00010000L
#define WS_DISABLED 0x08000000L
#define BS_DEFPUSHBUTTON 0x00000001L
#define WS_CHILD 0x40000000L#define ICO_MAIN 1000
#define DLG_MAIN 2000
#define IDC_CONN_STR 2001
#define IDC_CONN 2002
#define IDC_DISCONN 2003
#define IDC_SQL 2004
#define IDC_EXEC 2005
#define IDC_LIST 2006
#define IDC_INFO 2007
#define IDC_COMMIT 2008
#define IDC_ROLLBACK 2009
#define IDC_LIULAN 2010
#define IDC_SQLll 2011
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
ICO_MAIN icon "Main.ico"
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
DLG_MAIN DIALOG 51, 78, 465, 237
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
CAPTION "ODBC数据库操作例子"
FONT 9, "宋体"
{EDITTEXT IDC_CONN_STR, 65, 5, 290, 12, ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOPPUSHBUTTON "连接(&C)", IDC_CONN, 359, 4, 50, 14PUSHBUTTON "断开(&D)", IDC_DISCONN, 412, 4, 50, 14, WS_DISABLED | WS_TABSTOPEDITTEXT IDC_SQLll, 125, 22, 261, 12, ES_AUTOHSCROLL | WS_DISABLED | WS_BORDER | WS_TABSTOP DEFPUSHBUTTON "浏览(&L)", IDC_LIULAN, 65, 21, 50, 14, BS_DEFPUSHBUTTON | WS_TABSTOPEDITTEXT IDC_SQL, 40, 62, 261, 12, ES_AUTOHSCROLL | WS_DISABLED | WS_BORDER | WS_TABSTOPDEFPUSHBUTTON "执行(&E)", IDC_EXEC, 306, 61, 50, 14, BS_DEFPUSHBUTTON | WS_DISABLED | WS_TABSTOPPUSHBUTTON "提交(&M)", IDC_COMMIT, 359, 61, 50, 14, WS_DISABLED | WS_TABSTOPPUSHBUTTON "回滚(&R)", IDC_ROLLBACK, 412, 61, 50, 14, WS_DISABLED | WS_TABSTOPCONTROL "", IDC_LIST, "SysListView32", 13 | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 2, 96, 460, 179LTEXT "SQL语句", -1, 5, 64, 34, 8LTEXT "ODBC连接字符串", -1, 5, 8, 60, 8LTEXT "", IDC_INFO, 5, 78, 455, 18
}
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
odbcaddr7.asm
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Sample code for < Win32ASM Programming 2nd Edition>
; by 罗云彬, http://asm.yeah.net
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Odbc.asm
; 用Odbc操作数据库的例子
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 使用 nmake 或下列命令进行编译和链接:
; ml /c /coff Odbc.asm
; rc Odbc.rc
; Link /subsystem:windows Odbc.obj Odbc.res
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.386.model flat, stdcalloption casemap :none ; case sensitive
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Include 数据
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include windows.inc
include user32.inc
includelib user32.lib
include kernel32.inc
includelib kernel32.lib
include comctl32.inc
includelib comctl32.lib
include odbc32.inc
includelib odbc32.lib
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; equ 数据
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
ICO_MAIN equ 1000
DLG_MAIN equ 2000
IDC_CONN_STR equ 2001
IDC_CONN equ 2002
IDC_DISCONN equ 2003
IDC_SQL equ 2004
IDC_EXEC equ 2005
IDC_LIST equ 2006
IDC_INFO equ 2007
IDC_COMMIT equ 2008
IDC_ROLLBACK equ 2009
IDC_LIULAN equ 2010
IDC_SQLll equ 2011
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 数据段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.data?
hInstance dd ?
hWinMain dd ? ;对话框句柄
hListView dd ? ;列表框句柄
hEnv dd ? ;ODBC环境句柄
hConn dd ? ;ODBC连接句柄
szConnString db 1024 dup (?) ;ODBC连接字符串
szFullString db 1024 dup (?) ;连接后返回的全字符串
szSQL db 1024 dup (?) ;输入的准备执行的SQL语句.const
szDefConnStr db "Driver={Microsoft Access Driver (*.mdb)};dbq=test.mdb",0
szErrConn db '无法连接到数据库!',0
szOkCaption db '成功连接到数据库,完整的连接字符串如下:',0
szErrDDL db 'DDL/DCL 语句已成功执行。',0
szErrDML db 'DML 语句已成功执行,Insert/Update/Delete的行数:%d。',0
szErrDQL db '查询语句已经成功执行,得到的结果集如下:',0
sqlliulan db 'select * from addr',0;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 代码段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.code
include _ListView.asm
include _RecordSet.asm
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 执行SQL语句
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_Execute proclocal @dwTemp,@dwErrCodelocal @szSQLState[8]:byte,@szMsg[SQL_MAX_MESSAGE_LENGTH]:bytelocal @dwRecordCols,@dwResultRowslocal @szName[128]:byte,@dwNameSize,@dwType,@dwSize,@dwSize1,@dwNullablelocal @stRs:ODBC_RS,@hStmtinvoke SetDlgItemText,hWinMain,IDC_INFO,NULLinvoke ShowWindow,hListView,SW_HIDEinvoke _ListViewClear,hListViewinvoke SQLAllocHandle,SQL_HANDLE_STMT,hConn,addr @hStmt.if ax != SQL_SUCCESS && ax != SQL_SUCCESS_WITH_INFOret.endifinvoke SQLSetStmtAttr,@hStmt,SQL_ATTR_CURSOR_TYPE,SQL_CURSOR_STATIC,0;********************************************************************
; 执行 SQL 语句
;********************************************************************invoke lstrlen,addr szSQLinvoke SQLExecDirect,@hStmt,addr szSQL,eax.if ax != SQL_SUCCESS && ax != SQL_SUCCESS_WITH_INFO && ax != SQL_NO_DATAmov @szMsg,0invoke SQLGetDiagRec,SQL_HANDLE_STMT,@hStmt,1,\addr @szSQLState,addr @dwErrCode,addr @szMsg,\sizeof @szMsg,addr @dwTempinvoke SetDlgItemText,hWinMain,IDC_INFO,addr @szMsgjmp _FreeStmt.endif
;********************************************************************
; 语句执行成功,如果是DML语句,则显示语句影响的行数
;********************************************************************invoke SQLNumResultCols,@hStmt,addr @dwRecordColsand @dwRecordCols,0ffffh.if ! @dwRecordColsinvoke SQLRowCount,@hStmt,addr @dwResultRows.if @dwResultRows == -1 ;DDL或DCL语句invoke SetDlgItemText,hWinMain,IDC_INFO,addr szErrDDL.else ;DML语句invoke wsprintf,addr @szMsg,addr szErrDML,@dwResultRowsinvoke SetDlgItemText,hWinMain,IDC_INFO,addr @szMsg.endifjmp _FreeStmt.endif
;********************************************************************
; 如果是Select语句,则根据结果集初始化ListView的标题,以便显示
;********************************************************************invoke SetDlgItemText,hWinMain,IDC_INFO,addr szErrDQLinvoke ShowWindow,hListView,SW_SHOWxor ebx,ebx.while ebx < @dwRecordColsinc ebxinvoke SQLDescribeCol,@hStmt,ebx,\addr @szName,sizeof @szName,addr @dwNameSize,\addr @dwType,addr @dwSize,addr @dwSize1,addr @dwNullablemov eax,@dwSize ;列宽度=字符数*8象素mov ecx,8mul ecx.if eax > 300 ;最大不超过300象素mov eax,300.endif.if eax < 40 ;最小不小于40象素mov eax,40.endiflea ecx,@szName ;将列名称插入列表框invoke _ListViewAddColumn,hListView,ebx,eax,ecx.endw
;********************************************************************
; 将结果集填写到ListView中
;********************************************************************invoke _RsOpen,addr @stRs,@hStmtxor esi,esi.while TRUEinvoke _RsMoveNext,addr @stRs.break .if eaxinvoke _ListViewSetItem,hListView,esi,-1,0 ;插入新的一行mov esi,eaxxor ebx,ebx ;循环显示一行中的所有列.while ebx < @dwRecordColsinvoke _RsGetField,addr @stRs,ebx.if eaxinvoke _ListViewSetItem,hListView,esi,ebx,eax.endifinc ebx.endwinc esi ;行号加1.endwinvoke _RsClose,addr @stRsinvoke SQLCloseCursor,@hStmt
;********************************************************************
_FreeStmt:invoke SQLFreeHandle,SQL_HANDLE_STMT,@hStmtret_Execute endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 断开到数据库的连接
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_DisConnect proc.if hConninvoke SQLEndTran,SQL_HANDLE_DBC,hConn,SQL_COMMITinvoke SQLDisconnect,hConninvoke SQLFreeHandle,SQL_HANDLE_DBC,hConn.endif.if hEnvinvoke SQLFreeHandle,SQL_HANDLE_ENV,hEnv.endifxor eax,eaxmov hConn,eaxmov hEnv,eaxinvoke SetDlgItemText,hWinMain,IDC_INFO,NULLinvoke SetDlgItemText,hWinMain,IDC_SQL,NULLinvoke ShowWindow,hListView,SW_HIDEinvoke GetDlgItem,hWinMain,IDC_CONN_STRinvoke EnableWindow,eax,TRUEinvoke GetDlgItem,hWinMain,IDC_CONNinvoke EnableWindow,eax,TRUEinvoke GetDlgItem,hWinMain,IDC_SQLinvoke EnableWindow,eax,FALSEinvoke GetDlgItem,hWinMain,IDC_DISCONNinvoke EnableWindow,eax,FALSEinvoke GetDlgItem,hWinMain,IDC_COMMITinvoke EnableWindow,eax,FALSEinvoke GetDlgItem,hWinMain,IDC_ROLLBACKinvoke EnableWindow,eax,FALSEret_DisConnect endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 连接到数据库
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_Connect proclocal @dwTempinvoke GetDlgItem,hWinMain,IDC_CONN_STRinvoke EnableWindow,eax,FALSEinvoke GetDlgItem,hWinMain,IDC_CONNinvoke EnableWindow,eax,FALSE
;********************************************************************
; 申请环境句柄和连接句柄
;********************************************************************invoke SQLAllocHandle,SQL_HANDLE_ENV,SQL_NULL_HANDLE,addr hEnv.if ax != SQL_SUCCESS && ax != SQL_SUCCESS_WITH_INFOjmp _Error.endifinvoke SQLSetEnvAttr,hEnv,SQL_ATTR_ODBC_VERSION,SQL_OV_ODBC3,0.if ax != SQL_SUCCESS && ax != SQL_SUCCESS_WITH_INFOjmp _Error.endifinvoke SQLAllocHandle,SQL_HANDLE_DBC,hEnv,addr hConn.if ax != SQL_SUCCESS && ax != SQL_SUCCESS_WITH_INFOjmp _Error.endifinvoke SQLSetConnectAttr,hConn,SQL_ATTR_AUTOCOMMIT,SQL_AUTOCOMMIT_OFF,0
;********************************************************************
; 连接到数据库
;********************************************************************invoke lstrlen,addr szConnStringmov ecx,eaxinvoke SQLDriverConnect,hConn,hWinMain,addr szConnString,ecx,\addr szFullString,sizeof szFullString,addr @dwTemp,SQL_DRIVER_COMPLETE.if ax == SQL_SUCCESS || ax == SQL_SUCCESS_WITH_INFOinvoke MessageBox,hWinMain,addr szFullString,addr szOkCaption,MB_OKinvoke GetDlgItem,hWinMain,IDC_DISCONNinvoke EnableWindow,eax,TRUEinvoke GetDlgItem,hWinMain,IDC_COMMITinvoke EnableWindow,eax,TRUEinvoke GetDlgItem,hWinMain,IDC_ROLLBACKinvoke EnableWindow,eax,TRUEinvoke GetDlgItem,hWinMain,IDC_SQLpush eaxinvoke EnableWindow,eax,TRUEpop eaxinvoke SetFocus,eax.else
_Error:invoke MessageBox,hWinMain,addr szErrConn,NULL,MB_ICONSTOP or MB_OKinvoke _DisConnect.endifret_Connect endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 主窗口程序
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_ProcDlgMain proc uses ebx edi esi hWnd,wMsg,wParam,lParamlocal @stWsa:WSADATAmov eax,wMsg.if eax == WM_COMMANDmov eax,wParam
;********************************************************************
; 输入连接字符串后才激活“连接”按钮
;********************************************************************.if ax == IDC_CONN_STRinvoke GetDlgItemText,hWnd,IDC_CONN_STR,addr szConnString,sizeof szConnStringinvoke GetDlgItem,hWnd,IDC_CONN.if szConnStringinvoke EnableWindow,eax,TRUE.elseinvoke EnableWindow,eax,FALSE.endif
;********************************************************************
; 输入SQL语句后才激活“执行”按钮
;********************************************************************.elseif ax == IDC_SQLinvoke GetDlgItemText,hWnd,IDC_SQL,addr szSQL,sizeof szSQLinvoke GetDlgItem,hWnd,IDC_EXEC.if szSQLinvoke EnableWindow,eax,TRUE.elseinvoke EnableWindow,eax,FALSE.endif
;********************************************************************
; 连接、断开连接、执行按钮的处理
;********************************************************************.elseif ax == IDC_CONNinvoke _Connect.elseif ax == IDC_DISCONNinvoke _DisConnect.elseif ax == IDC_EXECinvoke _Executeinvoke SendDlgItemMessage,hWnd,IDC_SQL,EM_SETSEL,0,-1.elseif ax == IDC_COMMITinvoke SQLEndTran,SQL_HANDLE_DBC,hConn,SQL_COMMIT.elseif ax == IDC_ROLLBACKinvoke SQLEndTran,SQL_HANDLE_DBC,hConn,SQL_ROLLBACK.elseif ax == IDC_LIULANinvoke GetDlgItemText,hWnd,IDC_SQLll,addr szSQL,sizeof szSQLinvoke _Execute.endif
;********************************************************************.elseif eax == WM_INITDIALOGpush hWndpop hWinMaininvoke LoadIcon,hInstance,ICO_MAINinvoke SendMessage,hWnd,WM_SETICON,ICON_BIG,eaxinvoke GetDlgItem,hWnd,IDC_LISTmov hListView,eaxinvoke SendMessage,hListView,LVM_SETEXTENDEDLISTVIEWSTYLE,\0,LVS_EX_GRIDLINES or LVS_EX_FULLROWSELECTinvoke ShowWindow,hListView,SW_HIDEinvoke SendDlgItemMessage,hWnd,IDC_CONN_STR,EM_SETLIMITTEXT,1024,0invoke SendDlgItemMessage,hWnd,IDC_SQL,EM_SETLIMITTEXT,1024,0invoke SetDlgItemText,hWnd,IDC_CONN_STR,addr szDefConnStrinvoke SetDlgItemText,hWnd,IDC_SQLll,addr sqlliulan
;********************************************************************.elseif eax == WM_CLOSE.if ! hEnv && !hConninvoke EndDialog,hWinMain,NULL.endif
;********************************************************************.elsemov eax,FALSEret.endifmov eax,TRUEret_ProcDlgMain endp
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 程序开始
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
start:invoke InitCommonControlsinvoke GetModuleHandle,NULLmov hInstance,eaxinvoke DialogBoxParam,eax,DLG_MAIN,NULL,offset _ProcDlgMain,0invoke ExitProcess,NULL
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>end start
工程下载:
http://pan.baidu.com/s/1o7OEMc6
odbcaddr7.rar
在RadASM中导入masm32项目和win32汇编odbc示例相关推荐
- Eclipse中导入Maven项目后没有run on server
场景 在Eclipse中导入Maven项目后,想要运行时,却没有run on server 解决 右击项目--properties--project facets--勾选Dynamic Web Mod ...
- javaWeb项目 IDEA中导入eclipes项目的方法。maven多模块项目(父子模块)与普通的web项目导入
IDEA中导入eclipes项目 1.普通的Web项目(没有pom文件 )导入方式在下方地址 https://blog.csdn.net/oLevin/article/details/81018316 ...
- Android开发学习:在Eclipse中导入Android项目方法
在Eclipse中导入Android项目方法的具体步骤如下: 1.启动Eclipse,依次选择File---Import,如下图所示: 2.在弹出的Import窗口中选择Existing Projec ...
- myeclipse中导入android项目后无法视图下查看XML视图
myeclipse中导入android项目后无法视图下查看XML视图 导入项目后重启myeclipse即可,打开xml文件便可视图预览.
- idea中导入git项目时出现:Warning: Permanently added‘github.com’ (RSA) to the list of known hosts......
首次从idea上导入git项目时出现了,下图所示的错误: 解决方法: 打开 git bash 输入cd C:,回车 再输入cat ~/.ssh/id_rsa.pub,回车 输入ssh-keygen 然 ...
- eclipse中导入web项目详细配置
前言 在eclipse中导入web项目所需要的操作 一. 导入项目 选择 File 中的 import 选择 svn 中的从 svn 检出项目(本地项目就选 General -> Existin ...
- Eclipse中导入Java项目出现“No projects are found to import”
如图所示: , 这其实是你的项目中缺少了两个文件:.classpath文件和 .project文件 所以eclipse找不到你的项目了. 解决办法: 在你的Eclipse中再新建一个新的项目,项目的类 ...
- maven怎么和ecli_Maven的配置和Eclipse中导入SpringBoot项目一些注意点
1.Maven环境的配置: 1.1:在下载,安装好Maven后,首先对其conf目录下的settings.xml文件做修改: (如下所示:设置本地仓库的地址--->地址可自愿选择) 1 E:/S ...
- 如何在IDEA中导入eclipse项目
最近在用IDEA开发,需要导入一些以前的eclipse的项目,现在将导入过程中的一些心得记录下来. 将一个eclipse项目迁移到IDEA中主要有四步: 1.将eclipse项目导入到IDEA中. 2 ...
最新文章
- linux python代码编辑器,Linux上的Python编辑器
- Console.js:彩蛋和作弊码
- Request.Url.Port 获取不到正确的端口号
- 黄金分割小数点后100位小数的c语言编程,黄金分割数小数点后100位
- 漫画通信:惊呆了,手机登录还可以这么玩!
- 清华大学计算机系主任应明生,清华大学计算机科学与技术系导师简介:应明生...
- STM8学习笔记---union联合体的应用
- 线段树辅助——扫描线法计算矩形周长并(轮廓线)
- 关于信号处理中的复信号
- word打印高清图片
- 桌面IE图标删不掉解决方案
- 一些RGB颜色值——笔记
- linux禁调usb,Linux主机禁用USB接口
- 中国需要怎样的智慧城市联盟?中外41家联盟组织大起底
- 梦三国测试服显示连接服务器失败,我的登陆进去以后说与服务器失去连接怎么回事...
- DNS污染攻击详细教程
- php 修改word内容,php如何替换word内容
- 二叉树的父子节点位置关系
- CANoe隐藏属性——Multi CANoe
- 【微信小程序】——Mobx全局数据共享和分包