Ⅰ vb.net生成java可调用的dll(2)
调用函数的时候内部的工作原理。
不加的话默认是__cdecl,加的话变成__stdcall,
虽然没有硬性规定,不过DLL导出方法比较习惯会是后一种。
它涉及到调用函数的时候如何传递参数。
函数调用的时候参数是通过运行时栈来传递的,将参数放入栈中,然后进入函数代码执行
在执行完函数代码之后,要将栈中的参数清理掉。此时应该由哪一边来清理,是__cdecl和__stdcall最大的不同。
前者的原则是谁放进栈的谁清理,后者的原则是谁用完谁清理。
只要保证调用的一方的声明和被调用的一方的声明一致,就没有问题
否则会出现两边都不清理参数或者参数被重复清理的问题,都会造成栈的不平衡,然后大多数情况下这个时候程序崩溃
啥?写上WINAPI报错是不是没有引入必要的头文件啊比如windows.h……
直接写 __stdcall 来代替WINAPI也可以,如果没有引入头文件的话……
Ⅱ java调用vb webservice
使用java调用webservice,可以使用Axis(http://ws.apache.org/axis/),调用列车 时刻表服务的代码:
String url="http://www.webxml.com.cn/WebServices/TrainTimeWebService.asmx"; //endpiont
String namespace = "http://WebXml.com.cn/"; //wsdl中的namespace
String methodName = "getStationAndTimeByTrainCode"; //调用哪个方法,这里是 getStationAndTimeByTrainCode,因为返回的 是数组,比较方便,其他都是返回dataSet,需要额外解析
String soapActionURI = "http://WebXml.com.cn/getStationAndTimeByTrainCode"; //wsdl中方法的soapActionURI
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(url));
call.setUseSOAPAction(true);
call.setSOAPActionURI(soapActionURI);
call.setOperationName(new QName(namespace, methodName));
call.addParameter("TrainCode", XMLType.XSD_STRING, ParameterMode.IN); //设置列车代码参数
call.addParameter("UserID", XMLType.XSD_STRING, ParameterMode.IN); //设置商业用户ID
call.setReturnType(XMLType.XSD_ANYTYPE); //返回值类型,这里为String数组
Object ret = call.invoke(new Object[] { "D32","" }); //这里是调用,参数为D32次列车
System.out.println("返回结果:" + ret); //这里需要根据返回类型不同,做不同处理
-------------------------
配置方面可以参考apache官方网站,自己动手才能掌握更牢
-------------------------
一个wsdl文件就完全可以说明webservice的具体信息了
Ⅲ java用什么数据库好VB呢
在选择数据库时,需要考虑多个因素,例如性能、安全性、成本和开发经验。对于Java开发而言,Oracle数据库是一个不错的选择,它提供了强大的功能和优秀的性能,尤其是在处理复杂的数据操作和事务管理方面。Oracle数据库支持多种数据类型,并且拥有丰富的API和工具,使得Java开发者能够轻松地进行数据库操作。
而对于VB(Visual Basic)开发,Microsoft SQL Server是一个常见选择。SQL Server拥有完善的企业级特性,包括高可用性、容错能力和可扩展性,这些特性使得它在大型企业应用中非常受欢迎。此外,SQL Server与Visual Basic有着紧密的集成,开发者可以方便地使用ADO.NET等技术进行数据库操作。
除了Oracle和SQL Server之外,还有许多其他优秀的数据库可以选择。例如,对于小型项目或特定场景,可以考虑使用SQLite或MySQL。SQLite是一个嵌入式数据库,不需要单独的服务端程序,适合嵌入式系统和移动应用。MySQL则是开源的关系型数据库,拥有强大的社区支持和广泛的兼容性。
选择合适的数据库不仅取决于开发语言,还取决于项目需求、团队经验和预算等因素。开发者在做出选择时,应该综合考虑这些因素,以确保项目能够顺利进行,并能够满足预期的功能和性能要求。
总之,对于Java项目,Oracle是一个值得推荐的选择,而对于VB项目,SQL Server则是更合适的选择。当然,还有其他多种数据库可以依据具体需求来选择。