VB调用Fortrandll反编译工具的dll,打包后在其他电脑上安装,运行后提示找不到所dll反编译工具的dll文件

查看: 993|回复: 4
关于python调用fortran编译的dll的问题
惯用编译器:Intel Fortran for Linux
帖子主题精华
最近在学习python与fortran的混编,打算使用numpy的ctypeslib模块调用fortran的dll。首先我写了个小例子做测试,混编成功。但我把自己写的代码封装成dll,在python调用,计算结果u_nex, v_nex, eta_nex全是零,即python程序中初始化的值。
已调试了一天,还是没发现问题所在。现将代码贴出来,求助大家。
[Fortran] 纯文本查看 复制代码Module proc
Use, Intrinsic :: ISO_C_BINDING
Implicit None
! 将常量、模型参数定义为一个结构体(全局变量),通过子程序参数接口传入子程序
Type, Bind(C) :: arg_params
Real(C_DOUBLE) :: dx, dy, dt, hmin, rho, g
! 水平空间步长,时间歩长,最小截断水深,密度, 重力加速度
Real(C_DOUBLE) :: f, beta, r, taux, tauy, ah
! 科氏力参数,beta系数,底摩擦系数,风阻系数(x,y方向), 水平涡粘系数
Integer(C_INT) :: mode
! 对流项差分格式
Real(C_DOUBLE) :: slip
! 滑移边界类型
! 计算u子程序======================================================================
Subroutine cal_u(mask, h, eta_cur, u_cur, v_cur, u_nex, nx, ny, params) Bind(C)
!!DEC$ ATTRIBUTES DLLEXPORT :: cal_u
Implicit None
! 形参列表nx,ny
Integer(C_INT), Intent(in), Value :: nx, ny
! 形参列表mask, h, eta_cur, u_cur, v_cur, u_nex, 均为假定形状数组
Integer(C_INT), Intent(in)
:: mask(0:nx+1, 0:ny+1)
! 水陆掩膜,判断干湿格点(1为湿点,0为干点)
Real(C_DOUBLE), Intent(in)
:: h(0:nx+1, 0:ny+1)
! 实时水深
Real(C_DOUBLE), Intent(in)
:: eta_cur(0:nx+1, 0:ny+1), u_cur(0:nx+1, 0:ny+1), v_cur(0:nx+1, 0:ny+1)
! 第n步eta,u,v
Real(C_DOUBLE), Intent(out)
:: u_nex(0:nx+1, 0:ny+1)
! 第n+1步u流速,作为计算结果输出
! 形参列表params
type(arg_params), Intent(in)
! 定义cal_u子程序用到的局部变量
Real(8) :: B_cur(0:nx+1, 0:ny+1), B_nex(0:nx+1, 0:ny+1)
! 第n步示踪物B的浓度,第n+1步示踪物B的浓度
Real(8) :: CuP(0:nx+1, 0:ny+1), CuN(0:nx+1, 0:ny+1)
Real(8) :: CvP(0:nx+1, 0:ny+1), CvN(0:nx+1, 0:ny+1)
Real(8) :: du(0:nx+1, 0:ny+1), upre(0:nx+1, 0:ny+1)
Real(8) :: Rx(0:nx+1, 0:ny+1)
Real(8) :: hu, uu, vu
Real(8) :: pgrdx, tx, corx
Real(8) :: advx(0:nx+1, 0:ny+1), div, div1, div2
! x方向对流项相关变量
Real(8) :: diffx, term1, term2, term3, term4, s1, s2, h1
! x方向扩散项相关变量
Integer :: i, j
! 先计算对流项advx
Do j = 0, ny+1
Do i = 0, nx
CuP(i, j) = 0.25d0*(u_cur(i, j)+u_cur(i+1, j)+abs(u_cur(i, j))+abs(u_cur(i+1, j)))*params%dt/params%dx
CuN(i, j) = 0.25d0*(u_cur(i, j)+u_cur(i+1, j)-abs(u_cur(i, j))-abs(u_cur(i+1, j)))*params%dt/params%dx
CvP(i, j) = 0.25d0*(v_cur(i, j)+v_cur(i+1, j)+abs(v_cur(i, j))+abs(v_cur(i+1, j)))*params%dt/params%dy
CvN(i, j) = 0.25d0*(v_cur(i, j)+v_cur(i+1, j)-abs(v_cur(i, j))-abs(v_cur(i+1, j)))*params%dt/params%dy
B_cur(:, :) = u_cur(:, :)
Call advect(CuP, CuN, CvP, CvN, B_cur, B_nex, nx, ny, params%mode)
Do j = 1, ny
Do i = 1, nx
div1 = 0.5d0*(u_cur(i+1, j)-u_cur(i-1, j))/params%dx
div2 = 0.5d0*(v_cur(i, j)+v_cur(i+1, j)-v_cur(i, j-1)-v_cur(i+1, j-1))/params%dy
div = params%dt*B_cur(i, j)*(div1+div2)
advx(i, j)= B_nex(i, j)+div
! 计算出advx
! 分别计算tx,pgrdx及diffx
Do j = 1, ny
Do i = 1, nx
! 计算u的中间变量
pgrdx = -params%dt*params%g*(eta_cur(i+1, j)-eta_cur(i, j))/params%dx
! 计算出pgrdx
= 0.5d0*(h(i, j)+h(i+1, j))
= u_cur(i, j)
= 0.25d0*(v_cur(i, j)+v_cur(i, j-1)+v_cur(i+1, j)+v_cur(i+1, j-1))
diffx = 0.0d0
If (hu&0.0) Then
tx = params%dt*params%taux/(params%rho*hu)
! 计算出tx
Rx(i, j) = params%dt*params%r*sqrt(uu**2+vu**2)/hu
! 计算出Rx
! 根据滑移边界类型计算diffx
term1 = h(i+1, j)*(u_cur(i+1, j)-u_cur(i, j))/params%dx
term2 = h(i, j)*(u_cur(i, j)-u_cur(i-1, j))/params%dx
s1 = 1.0d0
s2 = 1.0d0
h1 = h(i, j+1)+h(i+1, j+1)
If (h1&params%hmin) Then
s1 = 0.0d0
s2 = params%slip
h1 = h(i, j)+h(i+1, j)
term3 = 0.25d0*(h(i, j)+h(i+1, j)+h1)*(s1*u_cur(i, j+1)-s2*u_cur(i, j))/params%dy
s1 = 1.0d0
s2 = 1.0d0
h1 = h(i, j-1)+h(i+1, j-1)
If (h1&params%hmin) Then
s1 = 0.0d0
s2 = params%slip
h1 = h(i, j)+h(i+1, j)
term4 = 0.25d0*(h(i, j)+h(i+1, j)+h1)*(s2*u_cur(i, j)-s1*u_cur(i, j-1))/params%dy
diffx = params%dt*params%ah*((term1-term2)/params%dx+(term3-term4)/params%dy)/hu
! 计算出diffx
! 第一步,得到不含科氏力项预估的upre
upre(i, j) = u_cur(i, j)+tx+pgrdx+advx(i, j)+diffx
! 第二步,半隐式方法求解科氏力项
= params%dt*params%f*vu
du(i, j) = (upre(i, j)-params%beta*u_cur(i, j)+corx)/(1.0d0+params%beta)-u_cur(i, j)
! 计算出du
! 第三步,计算u
If (mask(i, j)==1) Then
If ((mask(i+1, j)==1) .or. (du(i, j)&0.0)) u_nex(i, j) = (u_cur(i, j)+du(i, j))/(1.0d0+Rx(i, j))
If ((mask(i+1, j)==1) .and. (du(i, j)&0.0)) u_nex(i, j) = (u_cur(i, j)+du(i, j))/(1.0d0+Rx(i, j))
End Subroutine cal_u
! 计算v子程序======================================================================
Subroutine cal_v(mask, h, eta_cur, u_cur, v_cur, v_nex, nx, ny, params) Bind(C)
!!DEC$ ATTRIBUTES DLLEXPORT :: cal_v
Implicit None
! 形参列表nx,ny
Integer(C_INT), Intent(in), Value :: nx, ny
! 形参列表mask, h, eta_cur, u_cur, v_cur, v_nex, 均为假定形状数组
Integer(C_INT), Intent(in)
:: mask(0:nx+1, 0:ny+1)
! 水陆掩膜,判断干湿格点(1为湿点,0为干点)
Real(C_DOUBLE), Intent(in)
:: h(0:nx+1, 0:ny+1)
! 实时水深
Real(C_DOUBLE), Intent(in)
:: eta_cur(0:nx+1, 0:ny+1), u_cur(0:nx+1, 0:ny+1), v_cur(0:nx+1, 0:ny+1)
! 第n步eta,u,v
Real(C_DOUBLE), Intent(out)
:: v_nex(0:nx+1, 0:ny+1)
! 第n+1步v流速,作为计算结果输出
! 形参列表params
type(arg_params), Intent(in)
! 定义cal_v子程序用到的局部变量
Real(8) :: B_cur(0:nx+1, 0:ny+1), B_nex(0:nx+1, 0:ny+1)
! 第n步示踪物B的浓度,第n+1步示踪物B的浓度
Real(8) :: CuP(0:nx+1, 0:ny+1), CuN(0:nx+1, 0:ny+1)
Real(8) :: CvP(0:nx+1, 0:ny+1), CvN(0:nx+1, 0:ny+1)
Real(8) :: dv(0:nx+1, 0:ny+1), vpre(0:nx+1, 0:ny+1)
Real(8) :: Ry(0:nx+1, 0:ny+1)
Real(8) :: hv, vv, uv
Real(8) :: pgrdy, ty, cory
Real(8) :: advy(0:nx+1, 0:ny+1), div, div1, div2
! y方向对流项相关变量
Real(8) :: diffy, term1, term2, term3, term4, s1, s2, h1
! y方向扩散项相关变量
Integer :: i, j
! 先计算对流项advy
Do j = 0, ny
Do i = 0, nx+1
CuP(i, j) = 0.25d0*(u_cur(i, j)+u_cur(i, j+1)+abs(u_cur(i, j))+abs(u_cur(i, j+1)))*params%dt/params%dx
CuN(i, j) = 0.25d0*(u_cur(i, j)+u_cur(i, j+1)-abs(u_cur(i, j))-abs(u_cur(i, j+1)))*params%dt/params%dx
CvP(i, j) = 0.25d0*(v_cur(i, j)+v_cur(i, j+1)+abs(v_cur(i, j))+abs(v_cur(i, j+1)))*params%dt/params%dy
CvN(i, j) = 0.25d0*(v_cur(i, j)+v_cur(i, j+1)-abs(v_cur(i, j))-abs(v_cur(i, j+1)))*params%dt/params%dy
B_cur(:, :) = v_cur(:, :)
Call advect(CuP, CuN, CvP, CvN, B_cur, B_nex, nx, ny, params%mode)
Do j = 1, ny
Do i = 1, nx
div1 = 0.5d0*(u_cur(i, j)+u_cur(i, j+1)-u_cur(i-1, j)-u_cur(i-1, j+1))/params%dx
div2 = 0.5d0*(v_cur(i, j+1)-v_cur(i, j-1))/params%dy
div = params%dt*B_cur(i, j)*(div1+div2)
advy(i, j)= B_nex(i, j)+div
! 计算出advy
! 分别计算ty,pgrdy及diffy
Do j = 1, ny
Do i = 1, nx
! 计算v的中间变量
pgrdy = -params%dt*params%g*(eta_cur(i, j+1)-eta_cur(i, j))/params%dy
! 计算出pgrdy
= 0.5d0*(h(i, j)+h(i, j+1))
= v_cur(i, j)
= 0.25d0*(u_cur(i, j)+u_cur(i, j+1)+u_cur(i-1, j)+u_cur(i-1, j+1))
diffy = 0.0d0
If (hv&0.0) Then
ty = params%dt*params%tauy/(params%rho*hv)
! 计算出ty
Ry(i, j) = params%dt*params%r*sqrt(vv**2+uv**2)/hv
! 计算出Ry
! 根据滑移边界类型计算diffy
s1 = 1.0d0
s2 = 1.0d0
h1 = h(i+1, j)+h(i+1, j+1)
If (h1&params%hmin) Then
s1 = 0.0d0
s2 = params%slip
h1 = h(i, j)+h(i, j+1)
term1 = 0.25d0*(h(i, j)+h(i, j+1)+h1)*(s1*v_cur(i+1, j)-s2*v_cur(i, j))/params%dx
s1 = 1.0d0
s2 = 1.0d0
h1 = h(i-1, j)+h(i-1, j+1)
If (h1&params%hmin) Then
s1 = 0.0d0
s2 = params%slip
h1 = h(i, j)+h(i, j+1)
term2 = 0.25d0*(h(i, j)+h(i, j+1)+h1)*(s2*v_cur(i, j)-s1*v_cur(i-1, j))/params%dx
term3 = h(i, j+1)*(v_cur(i, j+1)-v_cur(i, j))/params%dy
term4 = h(i, j)*(v_cur(i, j)-v_cur(i-1, j-1))/params%dy
diffy = params%dt*params%ah*((term1-term2)/params%dx+(term3-term4)/params%dy)/hv
! 计算出diffy
! 第一步,得到不含科氏力项预估的vpre
vpre(i, j) = v_cur(i, j)+ty+pgrdy+advy(i, j)+diffy
! 第二步,半隐式方法求解科氏力项
= -params%dt*params%f*uv
dv(i, j) = (vpre(i, j)-params%beta*v_cur(i, j)+cory)/(1.0d0+params%beta)-v_cur(i, j)
! 计算出dv
If (mask(i, j)==1) Then
If ((mask(i, j+1)==1) .or. (dv(i, j)&0.0)) v_nex(i, j) = (v_cur(i, j)+dv(i, j))/(1.0d0+Ry(i, j))
If ((mask(i, j+1)==1) .and. (dv(i, j)&0.0)) v_nex(i, j) = (v_cur(i, j)+dv(i, j))/(1.0d0+Ry(i, j))
End subroutine cal_v
! 计算eta子程序=========================================================================
Subroutine cal_eta(h, eta_cur, u_nex, v_nex, eta_nex, nx, ny, params) Bind(C)
!!DEC$ ATTRIBUTES DLLEXPORT :: cal_eta
Implicit None
! 形参列表nx,ny
Integer(C_INT), Intent(in), Value :: nx, ny
! 形参列表mask, h, eta_cur, u_cur, v_cur, v_nex, 均为假定形状数组
Real(C_DOUBLE), Intent(in)
:: h(0:nx+1, 0:ny+1)
! 实时水深
Real(C_DOUBLE), Intent(in)
:: eta_cur(0:nx+1, 0:ny+1), u_nex(0:nx+1, 0:ny+1), v_nex(0:nx+1, 0:ny+1)
! 第n步eta,第n+1步u,v
Real(C_DOUBLE), Intent(out)
:: eta_nex(0:nx+1, 0:ny+1)
! 第n+1步u流速,作为计算结果输出
! 形参列表params
type(arg_params), Intent(in)
! 定义cal_eta子程序用到的局部变量
Real(8) :: B_cur(0:nx+1, 0:ny+1), B_nex(0:nx+1, 0:ny+1)
! 第n步示踪物B的浓度,第n+1步示踪物B的浓度
Real(8) :: CuP(0:nx+1, 0:ny+1), CuN(0:nx+1, 0:ny+1)
Real(8) :: CvP(0:nx+1, 0:ny+1), CvN(0:nx+1, 0:ny+1)
Integer :: i, j
Do j = 0, ny+1
Do i = 0, nx+1
CuP(i, j) = 0.5d0*(u_nex(i, j)+abs(u_nex(i, j)))*params%dt/params%dx
CuN(i, j) = 0.5d0*(u_nex(i, j)-abs(u_nex(i, j)))*params%dt/params%dx
CvP(i, j) = 0.5d0*(v_nex(i, j)+abs(v_nex(i, j)))*params%dt/params%dy
CvN(i, j) = 0.5d0*(v_nex(i, j)-abs(v_nex(i, j)))*params%dt/params%dy
B_cur(:, :) = h(:, :)
Call advect(CuP, CuN, CvP, CvN, B_cur, B_nex, nx, ny, params%mode)
Do j = 1, ny
Do i = 1, nx
eta_nex(i, j) = eta_cur(i, j)+B_nex(i, j)
End Subroutine cal_eta
! 计算对流项子程序===========================================================================
Subroutine advect(CuP, CuN, CvP, CvN, B_cur, B_nex, nx, ny, mode)
Implicit None
! 形参列表
Integer, Intent(in), Value
:: nx, ny, mode
Real(8), Intent(in)
:: CuP(0:nx+1, 0:ny+1), CuN(0:nx+1, 0:ny+1), CvP(0:nx+1, 0:ny+1), CvN(0:nx+1, 0:ny+1), B_cur(0:nx+1, 0:ny+1)
Real(8), Intent(out) :: B_nex(0:nx+1, 0:ny+1)
! 局部变量
:: RxP(0:nx+1, 0:ny+1), RxN(0:nx+1, 0:ny+1)
:: RyP(0:nx+1, 0:ny+1), RyN(0:nx+1, 0:ny+1)
:: dB, term1, term2, term3, term4
:: BwP, BwN, BeP, BeN, BsP, BsN, BnP, BnN
! 数组初始化
RxP(:, :) = 0.0d0
RxN(:, :) = 0.0d0
RyP(:, :) = 0.0d0
RyN(:, :) = 0.0d0
! 计算x方向,y方向的r+
Do j = 1, ny
Do i = 1, nx
B_cur(i+1, j)-B_cur(i, j)
If (abs(dB) & 0.0) RxP(i, j) = (B_cur(i, j)-B_cur(i-1, j))/dB
B_cur(i, j+1)-B_cur(i, j)
If (abs(dB) & 0.0) RyP(i, j) = (B_cur(i, j)-B_cur(i, j-1))/dB
! 计算x方向,y方向的r-
Do j = 1, ny
Do i = 0, nx-1
dB = B_cur(i+1, j)-B_cur(i, j)
If (abs(dB) & 0.0) RxN(i, j) = (B_cur(i+2, j)-B_cur(i+1, j))/dB
Do j = 0, ny-1
Do i = 1, nx
dB = B_cur(i, j+1)-B_cur(i, j)
If (abs(dB) & 0.0) RyN(i, j) = (B_cur(i, j+2)-B_cur(i, j+1))/dB
! 计算示踪物B浓度
Do j = 1, ny
Do i = 1, nx
BwP = B_cur(i-1, j)+0.5d0*PSI(RxP(i-1, j), mode)*(1.0d0-CuP(i-1, j))*(B_cur(i, j)-B_cur(i-1, j))
BwN = B_cur(i, j)-0.5d0*PSI(RxN(i-1, j), mode)*(1.0d0+CuN(i-1, j))*(B_cur(i, j)-B_cur(i-1, j))
BeP = B_cur(i, j)+0.5d0*PSI(RxP(i, j), mode)*(1.0d0-CuP(i, j))*(B_cur(i+1, j)-B_cur(i, j))
BeN = B_cur(i+1, j)-0.5d0*PSI(RxN(i, j), mode)*(1.0d0+CuN(i, j))*(B_cur(i+1, j)-B_cur(i, j))
BsP = B_cur(i, j-1)+0.5d0*PSI(RyP(i, j-1), mode)*(1.0d0-CvP(i, j-1))*(B_cur(i, j)-B_cur(i, j-1))
BsN = B_cur(i, j)-0.5d0*PSI(RyN(i, j-1), mode)*(1.0d0+CvN(i, j-1))*(B_cur(i, j)-B_cur(i, j-1))
BnP = B_cur(i, j)+0.5d0*PSI(RyP(i, j), mode)*(1.0d0-CvP(i, j))*(B_cur(i, j+1)-B_cur(i, j))
BnN = B_cur(i, j+1)-0.5d0*PSI(RyN(i, j), mode)*(1.0d0+CvN(i, j))*(B_cur(i, j+1)-B_cur(i, j))
term1 = CuP(i-1, j)*BwP+CuN(i-1, j)*BwN
term2 = CuP(i, j)*BeP+CuN(i, j)*BeN
term3 = CvP(i, j-1)*BsP+CvN(i, j-1)*BsN
term4 = CvP(i, j)*BnP+CvN(i, j)*BnN
B_nex(i, j) = term1-term2+term3-term4
Real(8) Function PSI(rr, mmode)
Real(8), Intent(in) :: rr
Integer, Intent(in) :: mmode
:: comp1, comp2, comp3
If (mmode == 1) PSI = 0.0d0
If (mmode == 2) PSI = 1.0d0
If (mmode == 3) Then
comp1 = Min(2.0d0*rr, 1.0d0)
comp2 = Min(rr, 2.0d0)
comp3 = Max(comp1, comp2)
= Max(comp3, 0.0d0)
End Function
End Subroutine advect
End Module
UID性别保密
F 币2928 元
贡献1745 点
惯用编译器:GFortran for Windows
帖子主题精华
F 币2928 元
贡献1745 点
多半栽倒在二维数组上面
Python调用C/Fortran混合的动态链接库
惯用编译器:Intel Fortran for Linux
帖子主题精华
多半栽倒在二维数组上面
Python调用C/Fortran混合的动态链接库
谢谢,已经拜读过这篇文章,我自己再排查排查吧
惯用编译器:Intel Fortran for Linux
帖子主题精华
已经排查到原因了,我在python程序里把第一个形参mask类型定义错了,应该是dtype=‘int32’,我错误地定义成了‘float64’。现在程序的计算结果正确了!
UID性别保密
F 币1574 元
贡献116 点
惯用编译器:Compaq Visual Fortran
帖子主题精华
F 币1574 元
贡献116 点
学习了,mark一下
颁发给发帖量超过一定数量的坛友
颁发给论坛注册1年以上的网友
颁发给论坛热心帮助他人的网友
颁发给完成“有规有矩”任务的网友
Powered byVB 6.0使用SetupFactory制作安装文件,在其他电脑上安装后运行出现类未注册问题,怎么处理?
按时间排序
你打包程序的时候是不是没有把用到的DLL文件一起打包起来,这种错误的原因就是缺少DLL或者OCX文件。我判断应该是其他电脑上缺少dao350.dll这个文件
你告诉它,你的工程文件夹,它应该自己会判断,需要打包哪些文件!
先用VB6.0自带的打包向导打包,该向导会自动检测需要打包哪些dll.,并把dll打包在一个叫包的文件夹里。 你可以在这个&包“里找到那些dll, 然后把那些需要的dll(不是所有的dll),放到Setup factory里打包。
感谢您为社区的和谐贡献力量请选择举报类型
经过核实后将会做出处理感谢您为社区和谐做出贡献
确定要取消此次报名,退出该活动?
请输入私信内容:vb打包后,安装时,出现错误提示 the language dll vb6chs.dll' can not be found 该怎么办_百度知道
vb打包后,安装时,出现错误提示 the language dll vb6chs.dll' can not be found 该怎么办
the language dll 'vb6chs.dll' can not be found
我有更好的答案
这是VB6的一个BUG,本来这个文件应该在SETUP1.EXE动行之前释放出来的,但实际上由SETUP.EXE释放出来的8个文件中却正好没有这个文件。解决办法是:打VB的补丁,现在已经有SP6了,打了补丁后,由SETUP.EXE释放出的文件增加到9个,这增加的一个文件正是vb6chs.dll。vbsp6微软下载地址#########################################################请根据你的系统语言来选择SP6的语言类型
采纳率:52%
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。vb编译的EXE不能再其它电脑上使用_百度知道
vb编译的EXE不能再其它电脑上使用
我用vb编写了一个mapgis程序,打包后拿到其它电脑上去安装,但安装不了 提示的是n多个dll文件丢失,可是我发现这些文件都在mapgis的program里面 请教高人指点
我有更好的答案
dll文件还有ocx文件都要和exe文件在同一目录。我们工程添加、引用的部件是dll或者ocX文件,添加时候有文件路径,找到该dll或者ocx复制到exe同一目录。你也可以把这些文件放在一个文件夹里,然后里面做一个绿化,实质就是注册。绿化的批处理文件如下:@echo offcolor aecho ┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴echo 绿化软件 echo ┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬echo →for /f %%i in ('dir /a /b *.ocx *.dll') do echo 正在注册%%i,请稍候... & copy %%i &%windir%\system32\%%i& & regsvr32 /s &%windir%\system32\%%i& echo 注册完成,按任意键退出...pause&nulexit
你是说用这些代码做一个bat文件吗?
我尝试了以下
还是无法实现啊补充一点 我在做这个程序之前 安装了一个mapgis开发库,叫SDK67,刚开始安装的时候,VB中一直无法在引用中调用安装的这些库文件,后面我是关闭了windows的数据执行保护才安装进去的,不知道这个跟上面的那个问题有没有联系……
你要仔细检查你调用的库文件,然后复制出来,再bat,如果你引用的这些文件同时又有调用其他库文件,那么你需要检查你安装的mapgis开发库,看看里面多了哪些库文件,最好是全部拷贝出来。
采纳率:65%
来自团队:
病情分析:您好,心血管疾病是有传的倾向的,所以是有可能有遗传的,如果有父母辈的心血管疾病的疾病史的话,那么子女患有心血管疾病的可能性会提高的,是属于易发人群的。指导意见:这种情况您现在还没有太大的必要进行预防的,平时少吃油腻少吃肉食,多吃蔬菜和水果,都会缓解心血管疾病的发生的可能性的,所以平时还要结合锻炼,坚持健身才会缓解心血管疾病的。
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。VS2010写的程序在自己电脑可以运行、其他电脑上不能运行的解决方案_西西软件资讯
西西软件下载最安全的下载网站、值得信赖的软件下载站!
→ VS2010写的程序在自己电脑可以运行、其他电脑上不能运行的解决方案
自己用 2010 旗舰版写了一个软件,在自己电脑上运行完全没有问题,但是拷贝到其他人电脑上之后不管双击还是以管理身份运行,均没有反应,器中相关进程也只是一闪而过。之后在网上搜得说是改为使用mfc静态链接,我也相应的改了,然后生成的release,可是还是在其他人电脑上没有反应。无奈,只好在网上继续搜索结果,最后定在是不是.版本的问题上,网上说改为2.0版本可以解决,然后我就打开项目属性,悲剧的发现目标Framework 直接显示的4.0,连下拉条都没有...而且我的通用属性的配置及平台选项均是不适用状态...我又新建一mfc工程,在新建菜单时上方有可以选择的.net 版本,我选择了2.0版本,但是新建之后打开属性它还是显示的4.0!& 继续在网上搜索之后,得知安装 3.5 sp1之后可以解决问题,然后我就开始安装.net 3.5 sp1,但是无论是下载在线安装版还是完整安装版,都安装不起,有三种状况:1、无论点击那个安装都没有反应....也没有相应进程2、多次重启之后终于有了反应,但是打开没一会就提示我必须使用“打开或关闭windows功能”才可以安装或配置.net 3.5,我也照着做了,在“打开或关闭...”中不断地勾上它,重启,打开vs2010,没有变化,去掉它,重启,打开vs2010,新建项目时就只有4.0一个选项了。然后再去掉它,重启,打开vs,又恢复原来的样子,还是不行,重复了多遍之后,彻底无语了。3,继续搜啊搜,发现win7 是自带了.net 3.5的,但是我就是不能用呢!!然后我继续在“打开关闭windows功能”中去掉.net 3.5的勾,重启,安装.net 3.5 sp1,他终于进入安装了,但是在安装到一半多的时候被程序兼容性助手阻止了!!说.net framework 3.5 sp1&language pack包会导致什么系统不能启动....随后我自己去官网下载了.net framework 3.5 sp1 language pack 64位安装包,单独安装也是被阻止!(此处引用百度知道)1、首先你做一个最简单的程序去测试,看看能否发布成功。如果能,第二步,检查程序。第三步,拷到具有相同环境的机器上,看能否运行。(如果不能,说明你的环境有问题)2、如果不能发布成功,检查你的环境,或者你的vs配置。我碰到的问题如下:1、在本机上可以运行,但是放到其它机器上不能运行,大概会在线程中出现十秒的样子,然后自动被干掉,估计就是程序的问题了。然后把代码拷到别人机器上运行,靠竟然出现了绝对路径(我觉得自己很SB)然后我弱弱的注释掉了。就这样一直不行一直调试,直到天黑。你发现什么问题了吧,对就是我的路径,我怎么用绝对路径了呢,是大意了还是水平不行吧。2、值得注意的是,我竟然还有资源文件没有拷贝进去,copy,past,搞定总结:1、碰到问题从最简单的开始测试2、千万不要写绝对路径,会死人的3、想好了再动手,出问题了不能敷衍,没搞好问题的根源就在那,想想为什么报错。4、打开文件的地方(这里被我忽略了),数据连接的地方必须抛出异常。
04-1503-2001-2812-2312-2111-2911-2909-1209-0509-05
阅读本文后您有什么感想? 已有23人给出评价!
名称大小下载}

我要回帖

更多关于 c dll 反编译 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信