java如何使用静态库

Python017

java如何使用静态库,第1张

1.缺少declare,正确的描述如下

private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

2 declare的说明

Declare 语句

用于在模块级别中声明对动态链接库 (DLL) 中外部过程的引用。

语法 1

[Public | Private] DeclareSubnameLib"libname" [Alias"aliasname"] [([arglist])]

语法 2

[Public | Private] DeclareFunctionnameLib"libname" [Alias"aliasname"] [([arglist])] [Astype]

Declare 语句的语法包含下面部分:

部分 描述

Public 可选的。用于声明对所有模块中的所有其它过程都可以使用的过程。

Private 可选的。用于声明只能在包含该声明的模块中使用的过程。

Sub 可选的(但Sub 或 Function 二者需选其一)。表示该过程没有返回值。

Function 可选的(但Sub 或 Function 二者需选其一)。表示该过程会返回一个可用于表达式的值。

name 必需的。任何合法的过程名。注意动态链接库的入口处(entry points)区分大小写。

Lib 必需的。指明包含所声明过程的动态链接库或代码资源。所有声明都需要Lib 子句。

libname 必需的。包含所声明的过程动态链接库名或代码资源名。

Alias 可选的。表示将被调用的过程在动态链接库 (DLL)

中还有另外的名称。当外部过程名与某个关键字重名时,就可以使用这个参数。当动态链接库的过程与同一范围内的公用变量、常数或任何其它过程的名称相同时,也可以使用

Alias。如果该动态链接库过程中的某个字符不符合动态链接库的命名约定时,也可以使用 Alias。

aliasname 可选的。动态链接库或代码资源中的过程名。如果首字符不是数字符号 (#),则

aliasname 是动态链接库中该过程的入口处的名称。如果首字符是

(#),则随后的字符必须指定该过程的入口处的顺序号。

arglist 可选的。代表调用该过程时需要传递的参数的变量表。

type 可选的。Function 过程返回值的数据类型;可以是 Byte、布尔、Integer、Long、Currency、Single、Double、Decimal(目前尚不支持)、Date、String(只支持变长)或 Variant,用户定义类型,或对象类型。

arglist 参数的语法以及语法各个部分如下:

[Optional] [ByVal | ByRef] [ParamArray] varname[( )] [Astype]

作为一名程序员,你几乎每天都会使用到GitHub上的那些著名Java第三方库,比如ApacheCommons,Spring,Hibernate等等。

除了这些,你可能还会fork或Star一些其他的开源库,但GitHub上的库实在太多了,以至于对于个人来说,你很难有时间去发现并了解那些不断加入的新库,而它们却往往能在一些新兴领域中给你提供帮助。

我一直使用JAVA来写后端应用,平时也会关注一些国外技术大牛的博客(来自Tapki、DZone、GoogleDeveloper等技术博客),从而注意到了一些新的而且很有意思Java开源库,它们有些能给你的项目带来帮助,有些是以游戏的形式帮你提高Java的编程水平,而另一些则能够帮助你识别JAVA程序中的常见问题。

在这多达330,000个JAVA开源库中,我收集了下面这些或许也值得你一试的Java开源库。

Strman-java_字符串处理Strmen-java是一个字符串处理工具,你可以通过maven将它引入到项目中。

除了Java本身的字符串处理方式外,我们还可以使用ApacheCommonLangs里的StringUtils来简化String的操作。

但以上两种方式对于我们日常编程中最容易碰到的字符串处理来说,仍然显得有些不足。

Strmen-java为我们提供了一个非常完整且强大的解决方案,使用它可以解决几乎所有字符串处理场景。

Bootique_微服务框架以前开发Web应用程序时,我们总需要先构建一个应用,然后将它打包(war),再部署到如Tomcat这样的Web容器中。

但随着微服务架构的流行,我们需要更轻量化,非容器的开发框架。

SpringBoot是我一直在使用的,而Bootique无疑是另一种优秀的选择。

它允许你通过具有不同功能的模块插入,来支持如RESTService,Webapp,定时调度,数据迁移等功能。

而使用它写的程序都则会被打包为一个Jar文件,你可以通过命令行更灵活地去启动它。

从很多角度看,它都很像SpringBoot,将你从Java应用从它所依赖的Web容器中解放出来,程序员们可以有更强的自主性,去写主程序的main()函数。

甚至在你不添加任何额外的模块的情况下,你也能直接使用Bootqiue去实现一个Java应用。

Gumshoe_Java程序检测Gumshoe是一个JAVA程序检测工具,它能帮助你跟踪程序的负载和性能。

它能通过度量TCP,UDP,CPU使用等信息,帮助你分析出资源的使用情况,同时电脑培训http://www.kmbdqn.cn/发现它也提供了Java程序中调用栈的分析功能,比如提供某个方法调用的次数,频度等信息。

java.lang.*

Java编程语言的基本类库

java.util.*

包括集合类、时间处理模式、日期时间工具等各类常用工具包

这两个是最基本的类库,学习java要熟悉这两个类库。

下面也是一些常用的:

java.awt.*

提供了创建用户界面以及绘制和管理图形、图像的类(现在已不常用)

javax.swing.*

提供了一系列轻量级的用户界面组件,是目前Java用户界面常用的包

现在更多用swing来构建java用户界面。

java.io.*

提供了通过数据流、对象序列以及文件系统实现的系统输入、输出

java.sql.*

提供了访问和处理来自于Java标准数据源数据的类

java.math.*

提供了简明的整数算术以及十进制算术的基本函数

java.rmi.*

提供了与远程方法调用相关的所有类

java.net.*

提供了用于实现网络通讯应用的所有类