首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从VB6.0调用时,DLL中的Fortran ` `read(*,*)`会导致“运行时错误(39)”

从VB6.0调用时,DLL中的Fortran read(*,*)会导致“运行时错误(39)”。

这个错误通常是由于VB6.0与Fortran之间的数据类型不匹配导致的。在VB6.0中,read(*,*)是Fortran中的一种读取输入的语句,用于从控制台或文件中读取数据。然而,VB6.0与Fortran在数据类型上存在差异,因此在调用DLL中的Fortran代码时,需要确保数据类型的一致性。

要解决这个问题,可以采取以下步骤:

  1. 确保VB6.0与Fortran之间的数据类型匹配。例如,如果Fortran中使用的是整数类型,那么在VB6.0中也要使用相应的整数类型。
  2. 在VB6.0中使用Declare语句声明DLL中的Fortran函数或子程序。在声明时,确保参数的数据类型与Fortran代码中的数据类型一致。
  3. 在调用DLL中的Fortran函数或子程序之前,将数据转换为正确的数据类型。可以使用VB6.0中的类型转换函数,如CIntCDbl等。
  4. 确保DLL文件与VB6.0项目在同一目录下,并且正确引用了DLL文件。
  5. 检查Fortran代码中的其他可能导致错误的地方,如数组越界、空指针等。

总结起来,解决这个问题的关键是确保VB6.0与Fortran之间的数据类型一致,并正确地传递参数。如果仍然遇到问题,可以进一步调试代码或查阅相关文档以获取更多帮助。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云函数计算(SCF):https://cloud.tencent.com/product/scf
  • 腾讯云数据库(TencentDB):https://cloud.tencent.com/product/cdb
  • 腾讯云人工智能(AI):https://cloud.tencent.com/product/ai
  • 腾讯云物联网(IoT):https://cloud.tencent.com/product/iotexplorer
  • 腾讯云移动开发(移动推送、移动分析等):https://cloud.tencent.com/product/mobile
  • 腾讯云对象存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云区块链(BCS):https://cloud.tencent.com/product/bcs
  • 腾讯云元宇宙(Tencent XR):https://cloud.tencent.com/product/xr
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Fortran知识 | DLL缺失

有时编译后exe程序再复制到其他计算机上独立运行会出现类似下面的错误: 我们不禁问:Fortran是编译型语言,编译好程序(exe等)是完全可以独立于编译器运行。...而编译器编译后程序,还会依赖这些DLL? 事实上在我们编写代码,有一些通用性代码需要由编译器来提供。...比如读写文件,或者一些常见内置函数,这些通常被称为运行时库(Runtime library)。有些编译器会将运行时库(或部分)写入到DLL里。这样做好处是: 1.减少编译后exe文件大小。...3.提高通用代码可重复使用。 4.便于升级。 对于这类编译器,写到DLL运行时库,我们编译后程序就会依赖它。...解决这个问题,最简单办法是将源代码重新编译,或者将这些DLL和exe程序一同拷贝。

1.3K50

php之php.ini配置文件讲解案例

; 打开这项设置导致严重运行时冲突,建议仅在debug过程打开。 allow_call_time_pass_reference = On  ; 是否让强迫函数调用时按引用传递参数。...; E_ALL - 所有的错误和警告  ; E_ERROR - 致命性运行时错  ; E_WARNING - 运行时警告(非致命性错)  ; E_PARSE - 编译时解析错误  ; E_NOTICE...display_startup_errors = Off ; 甚至当display_erroes打开了,发生于PHP启动步骤  ; 错误也不会被显示。 ...session.referer_check = ; 检查 HTTP引用以使额外包含于URLsids无效  session.entropy_length = 0 ; 文件读取多少字节  session.entropy_file...; pfpro.proxypassword = ; 默认代理密码 [Sockets]  sockets.use_system_read = On ; 使用系统read() 函数替代 php_read

1.5K00
  • Oracle:ODP.NET Managed 小试牛刀

    核心dll,就是common目录下Oracle.ManagedDataAccess.dll,不象ODP.NET以前版本,这次终于不用区分x86/x64版本了,不管是32位还是64位,都是同一个dll...至于manged/x64、managed/x86这二个目录,是用来向.NET x86或.NET x64GAC注册程序集,运行相关configure.bat后,自动将commonOracle.ManagedDataAccess.dll...放入GAC,这样在vs添加引用时,能自动找到GAC相关命名空间 ?...运行了configure.bat机器上,应用程序bin目录下不必包括Oracle.ManagedDataAccess.dll,就能正常运行了。...注:configure.bat这一步是可选,添加引用时,完全也可以通过直接浏览Oracle.ManagedDataAccess.dll所在位置,将该dll复制到bin目录下.

    84260

    PHP配置文件详解php.ini

    ; 打开这项设置导致严重运行时冲突,建议仅在debug过程打开。 allow_call_time_pass_reference = On ; 是否让强迫函数调用时按引用传递参数。...; E_ALL - 所有的错误和警告 ; E_ERROR - 致命性运行时错 ; E_WARNING - 运行时警告(非致命性错) ; E_PARSE - 编译时解析错误 ; E_NOTICE - 运行时提醒...display_startup_errors = Off ; 甚至当display_erroes打开了,发生于PHP启动步骤 ; 错误也不会被显示。...session.referer_check = ; 检查 HTTP引用以使额外包含于URLsids无效 session.entropy_length = 0 ; 文件读取多少字节 session.entropy_file...= ; 默认代理密码 [Sockets] sockets.use_system_read = On ; 使用系统read() 函数替代 php_read()封装 ; Local Variables

    2K10

    PHP 配置文件详解(php.ini 详解 )

    打开这项设置导致严重运行时冲突,建议仅在debug过程打开。 allow_call_time_pass_reference = On 是否让强迫函数调用时按引用传递参数。...; E_ALL - 所有的错误和警告 ; E_ERROR - 致命性运行时错 ; E_WARNING - 运行时警告(非致命性错) ; E_PARSE - 编译时解析错误 ; E_NOTICE...display_startup_errors = Off ; 甚至当display_erroes打开了,发生于PHP启动步骤 ; 错误也不会被显示。...session.referer_check = ; 检查 HTTP引用以使额外包含于URLsids无效 session.entropy_length = 0 ; 文件读取多少字节 session.entropy_file...; pfpro.proxypassword = ; 默认代理密码 [Sockets] sockets.use_system_read = On ; 使用系统read() 函数替代 php_read

    4.6K30

    白加黑保姆教程通杀主流杀软

    1.修改导出表 在导出表,将要转发函数入口地址指向另一个DLL对应函数入口地址 2.实际调用过程 其他程序调用DLL中被转发函数时,系统重定向到转发目标DLL对应函数。...延迟加载目标 DLLDLL A 函数被调用时,首先使用 LoadLibrary 加载目标 DLLB。...当程序运行时,操作系统会将静态链接库(Static Link Library)代码和数据复制到程序内存空间中,这样程序就可以直接使用 DLL 功能。...由于 DLL 文件已经被嵌入到可执行文件,因此程序在运行时不需要再加载 DLL 文件,可以直接执行。...dllmain (由于dll被修改后哔哩打开就闪退了,之前那个是在dllmain调用函数来创建线程,所以闪退导致CS这边也退掉) 想要保持修改dll软件exe也能正常运行打开,不是那么好做,是比较困难

    48510

    extern、定义和声明

    而局部变量声明不能有extern修饰,且局部变量在运行时才在堆栈部分分配内存。 引用性声明、定义性声明 强符号、弱符号 出现在linuxgcc链接分析,可以加深链接理解。...然后编译成lib,dll,obj,.o等等,然后别人用时候最基本gcc hisfile.cpp yourfile.o|obj|dll|lib 等等。...extern "C"用法  链接指示符extern C     如果程序员希望调用其他程序设计语言尤其是C 写函数,那么调用函数时必须告诉编译器使用不同要求,例如当这样函数被调用时函数名或参数排列顺序可能...,当复合语句链接指示符括号中含有#include 时在头文件函数声明都被假定是用链接指示符程序设计语言所写在前面的例子在头文件声明函数都是C函数链接指示符不能出现在函数体中下列代码段将会导致编译错误..."可以用来声明是用Ada 语言写函数,extern "FORTRAN"用来声明是用FORTRAN 语言写函数,等等因为其他链接指示随着具体实现不同而不同所以建议读者查看编译器用户指南以获得其他链接指示符进一步信息

    1.3K20

    红队免杀必会-进程注入--注册表-全局钩

    补充一句: ntdll.dll是Windows系统Ring3到Ring0入口,位于Kernel32.dll和user32.dll所有win32 API 最终都是调用ntdll.dll函数实现...是在进程生命周期早期(Loader)被载入,因此我们在调用函数时候应该谨慎,调用Kernel32.dll函数应该没有问题,但是调用其他DLL函数可能导致失败,甚至可能导致蓝屏 User32...因此,如果想要将DLL注入到编译器或者链接器或者命令行程序,这种方法就不可行 DLL会被映射到每个基于GUI应用程序,可能因为DLL被映射到太多进程导致"容器"进程崩溃 注入DLL会在应用程序终止之前...当发生各种事件时候,比如敲击键盘,点击鼠标等等,操作系统OS message queue将消息取出给到相应程序application message queue。...当钩子不再使用时,可以卸载全局钩子,此时已经包含钩子函数DLL模块进程,将会释放DLL模块。

    1.3K20

    0x00000000该内存不能为read

    真正0地址内存区储存是计算机系统中最重要“中断描写叙述符表”。绝对不同意应用程序使用。 在没有保护机制操作系统下(如DOS)。写数据到这个地址导致立即当机,而在健壮操作系统。...这个操作立即被系统保护机制捕获,其结果就是由操作系统强行关闭出错应用程序,以防止其错误扩大。这时候。就会出现上述内存不能为“read错误。并指出被引用内存地址为“0x00000000“。...该内存不能为read或written解决方式关键词: 该内存不能为”read” 该内存不能为”written” 网上搜索来几篇相关文章....写数据到这个地址导致立即当机,而在健壮操作系统,如Windows等,这个操作立即被系统保护机制捕获,其结果就是由操作系统强行关闭出错应用程序。以防止其错误扩大。...另外也可能是硬件设备之间兼容性不好造成。 以下我几个样例给大家分析: 例一:打开IE浏览器或者没过几分钟就会出现”0x70dcf39f”指令引用”0x00000000″内存。

    2K20

    滥用具备RWX-S权限且有签名dll进行无感知shellcode注入

    找到一个有签名并且具备 RWX-S 权限dll。(不具备RWX-S权限也可以,可以patch系统内已签名dll,但是这样破坏签名,不够隐蔽) 2....这种情况下DLL加载是在系统新开一个线程完成,如果 DllMain 回函数不返回,系统就会kill掉这个线程,以至于我们自己恶意代码无法持续执行,那解决办法就是要在 DllMain 中新开一个线程...我想要就在当前项目中完成,编译完之后,运行时patch进去,要怎么做呢? 仔细想一下,当 DllMain回函数被执行时候,难道真的任何地址信息都没有提供吗?其实不然。...设置消息钩子,我们传入 hook procedure 也并非一个钩子处理函数,它并不会调用 CallNextHookEx ,就导致被注入进程无法响应相关消息,甚至运行异常代码而崩溃,这样导致获取...当钩子被卸载之后,KbdEditDllPremium.dll内存卸载,此时主程序其实可以直接删掉 KbdEditDllPremium.dll进行彻底毁尸灭迹。

    90320

    疑难杂症又一记

    ,但是当尝试 Debug 模式下执行 SampleBrowser 时却报了错: Unable to read zip file … 简单google了一下,大部分说法都是配置资源路径有问题,尝试修改了一下...不过调试结果有些奇怪,错误似乎发生在依赖库 zzip ,出错 API 调用是这个: 简单跟了一下 zzip 内部代码,发现出错点好像是发生在运行时,这让人觉得困惑....遂而比较了一下差异,最后发现是运行时冲突导致了这个问题,简而言之, zzip 是静态链接入程序,其使用是 多线程DLL(/MD) 运行时库,而程序本身使用是 多线程调试DLL(/MDd) 运行时库...(Debug模式下),运行时冲突导致了诸如 fstat 等标准库函数执行异常,继而导致了上述加载出错问题....解决方法也简单, Debug 模式下链接 zzip 调试库即可(下载生成 OGRE 工程即带有 zzip 项目).

    38810

    NSIS 打包脚本基础

    函数 包含了模块化安装逻辑。 在nsi脚本函数分为两种:用户自定义函数和回函数。...用户自定义函数 用户自定义函数仅当是Call指令调用时才被执行,如果函数体没有abort语句,则安装程序执行完了用户自定义函数,继续运行Call语句和指令。... “INI文件” “区段” 区段读取 “项” 值并把该值输出到用户变量。如果该项未找到时会放置一个错误标记且该用户变量被赋为空值。...当产生一个错误时候置一个错误标记(例如不能载入 DLL,不能初始化 OLE,不能找到入口点,或者函数返回任何其它错误 ERROR_SUCCESS (=0))。 其实就是注册或加载你要插件!...逻辑操作 Push 作用:把一个字串压入堆栈,该字串可随后堆栈里弹出。 Pop 作用:堆栈里弹出一个字串到用户变量 $x。如果堆栈是空,则会置一个错误标记。

    4.9K60

    技能篇:linux服务性能问题排查及jvm优思路

    一旦负载过高,就可能导致进程响应变慢,进而影响服务正常功能 平均负载与 CPU 使用率关系 CPU 密集型进程,使用大量 CPU 导致平均负载升高,此时这两者是一致 I/O 密集型进程,等待 I/...O 也导致平均负载升高,但 CPU 使用率不一定很高 大量等待 CPU 进程调度也导致平均负载升高,此时 CPU 使用率也会比较高 CPU 上下文切换 进程上下文切换: 进程运行空间可以分为内核空间和用户空间...一次系统调用,两次 CPU 上下文切换 系统平时会按一定策略调用进程,导致进程上下文切换 进程在阻塞等到访问资源时,也会发生上下文切换 进程通过睡眠函数挂起,会发生上下文切换 当有优先级更高进程运行时...,即网络 I/O 速度过快,导致 Ring Buffer 数据包来不及处理(队列满)而导致丢包 carrier 表示发生 carrirer 错误数据包数,比如双工模式不匹配、物理电缆出现问题等...,本应在栈上分配,但需要在堆上分配,称为内存逃逸 java对象都是在堆上分配,而垃圾回收机制回收堆不再使用对象,但是筛选可回收对象,回收对象还有整理内存都需要消耗时间。

    79310

    DirectX修复工具常见问题解答

    答:本程序致力于解决0xc000007b错误,因此只有在程序检测到系统c++存在异常,可能导致0xc000007b问题,而修复时又没有使用增强版修复相应c++时,才会弹出此提示。...如果您操作系统安装在了C盘,则程序修复C盘DirectX,如果您操作系统安装在了D盘,则程序修复D盘DirectX,其他以此类推。...如上问所说,软件包含了DirectX 11文件。 问题15:我游戏运行时出现0xc000007b错误,能用本软件修复吗? 答:能。...详情请参考:http://blog.csdn.net/vbcom/article/details/6070705 问题16:我游戏运行时出现某某内存(0xcxxxxxxxx)不能为Read或...答:如果使用了本软件进行修复,请确保您游戏目录下没有自行拷贝dll文件。若您之前自己网上下载过dll文件并拷贝到系统,请将它们全部删除后再用本软件进行修复。

    2.1K20

    白加黑免杀制作(详细)

    静态链接库(.lib) 在编译动态链接库(.dll)时还会输出相应静态链接库(.lib): lib 文件包含一些索引信息,记录了 dll 函数入口和位置,lib 用于在开发编译时使用,dll 则在运行时使用...: 当所需 dll 存在,但是 dll 不存在所需函数时也会会弹出错误提示框并提示缺少函数: 即静态调用时会对 dll 导出函数进行检查,该 dll 必须包含所需所有导出函数该 dll 才能被加载...dll 动态调用和静态调用相反,无法直接在PE查看器查看,且当所需 dll 不存在时不会返回任何错误,只有当调用不存在 dll 函数时才会退出程序并返回错误代码: 注意:动态调用和静态调用区别...dll,可以看到有部分名称全大写系统 dll当前路径加载,按理论来说系统 dll 应该优先从系统目录下加载,但事实是部分系统 dll 直接当前目录加载,原因不明: 注意,这里并不是全部,...时会直接报 0x000007b 错误: 这里参照前面的 dll 开发: 编译时要特别注意一下劫持 dll 与我们编译 dll 位数是否相同,不相同执行时也直接报 0x000007b 错误: 执行时并没有执行

    5.8K71

    关于引用mshtml问题

    查这个dll时候还发现了好几篇关于这个dll添加问题文章。顺便看了下,原来这个dll有三个,添加引用时要注意了。...第一篇文章: 1.添加引用问题 一般在开发环境下会在三个地方存有microsoft.mshtml.dll文件。所以在添加引用时,也会出现三个看似一样项。...对于开发者来说,引用其中任何一个都不会影响到正常开发。但问题会出在软件发布之后!在客户机子上运行时,通常会提示文件签名不正确,无法加载。 解决方法就是删除现在对mshtml引用。..._ComObject 无法强制转换到 HtmlWIndow2Class 、HtmlDocumentClass或其它类似的错误。在开发者机子上运行,却完全正常。这时通常我们狂抓,完全不知是什么原因!...属性选择: 复制本地=True 特定版本=false; 原因是: 因为 Microsoft.mshtmal.dll 这个 dll system32 文件夹下 mshtml.tlb(

    1.2K10

    MinGW安装教程——著名CC++编译器GCCWindows版本

    (当然如果您很了解 MinGW,也可以橙色线框所示目录手动下载各组件。) 注意:这里下载只是 MinGW 安装管理器安装程序,将 MinGW 安装管理器正确安装后,才能安装 MinGW。...它只相当于一个下载器,当其运行时,将会 MinGW 官方服务器上下载真正 MinGW 安装管理器。...而且因为安装管理器链接是外国服务器,也导致下载速度缓慢,所以我们需要耐心等待一段时间。...如果代码没有明显编译错误运行时也没有逻辑错误,则在最终编译为可发布版程序时,我们还要考虑编译优化问题,以便生成程序文件拥有更小体积,和更高运行效率。...——– mingw32-libintl 建议,GNU 软件国际化库运行时 DLL 文件。 ——– mingw32-libltdl 可选,可移植 dlopen 替代库。

    23.1K33

    浅谈 Windows Syscall

    , 因此内核驱动程序可能还会因为写入错误地址空间导致其他驱动程序甚至系统出现错误。...如果熟悉 ntdll.dll 的话知道,ntdll.dll 一部分导出函数都是采用这种形式,如 NtCreateProcess: 代码几乎一样,区别在于 mov eax 0B4h,也就是在执行syscall... HOOK,主要问题是不同版本 Windows Ntxxx 函数系统调用号不同,且调用时需要逆向各 API 结构方便调用。...,Syswhispers 导出指定函数所有已知版本系统调用号,根据版本不同再来指定调用。...用法与 Syswhispers 大致相同,不同点在于,在使用时会生成三个文件: 在导入时要将 syscall.c 也导入到源代码 syscall.c 存储着系统调用地址排序和哈希比较功能。

    5.6K62

    Go错误和异常处理最佳实践

    错误 认识错误 在Go错误是一种表示程序错误状态。包含了在程序在运行时、编译时状态信息。一般我们在编写Go代码,都会碰到如下处理方式。...panic 可以直接代码初始化:当错误条件(我们所测试代码)很严苛且不可恢复,程序不能继续运行时,可以使用 panic 函数产生一个中止程序运行时错误。...处理异常 当程序在运行过程中发生异常,终止程序正常运行。需要严格处理异常信息。Go可以使用recover()将程序panic获取异常信息,并获取程序执行权。...panic 导致栈被展开直到defer修饰recover()被调用或者程序中止。 所有的 defer 语句都会保证执行并把控制权交还给接收到 panic 函数调用者。...在包内部,特别是在非导出函数中有很深层次嵌套调用时,对主调函数来说用 panic 来表示应该被翻译成错误错误场景是很有用(并且提高了代码可读性)。

    95410
    领券