10 个解决方案
#1
dll 加载,分为静态加载和动态加载;动态加载的模块名又分为是否带路径,静态加载是不带路径的。带路径的就不说了;不带路径,对模块文件有个搜索顺序的,这个顺序不会变,msdn 的说法依次为:
1. 应用程序所在目录
2. 当前目录。程序不一定都是从其所在目录启动的,在“快捷方式”里就有设置启动目录,其即为这里的当前目录
3. 系统目录,对 64 位程序即为 SysWOW64 ,对 32 位程序为 System32 。是对程序而言,不是对系统。
4. Windows 目录
5. path 系统变量所指定的目录
所以,自己单独使用的 dll,和应用程序放在一起比较合适;会被其它共用到的,放到系统目录下更好。
1. 应用程序所在目录
2. 当前目录。程序不一定都是从其所在目录启动的,在“快捷方式”里就有设置启动目录,其即为这里的当前目录
3. 系统目录,对 64 位程序即为 SysWOW64 ,对 32 位程序为 System32 。是对程序而言,不是对系统。
4. Windows 目录
5. path 系统变量所指定的目录
所以,自己单独使用的 dll,和应用程序放在一起比较合适;会被其它共用到的,放到系统目录下更好。
#2
xp下原来都是放在开发环境文件的当前目录下的,一直可用,用win7 64bit,程序刚启动时也可用,运行几次后就不行了,郁闷啊,,,
#3
运行几次后就不行了,具体什么意思、什么表现?是一次开机后刚开始可以,程序运行会儿就不行了,还是程序关闭后再打开就不行了,还是前几次开机运行都可以,后来就再不行了?不行的话,什么提示和反应?应该是程序本身有问题吧,和其所在目录没有关系的。
#4
就是在开发环境下修改代码,然后运行,这样弄几次就不行了,必须关闭程序再次打开才行,win7 64bit下Program Files (x86)目录是不是有什么特殊的含义啊,好像开发环境安装时,选择安装在这个目录下就可以,但其他功能就不行了,比如oracle 10g接口就不能装在这个下面,否则无法连接db,,,
#5
Program Files (x86) 这个目录从名字也可以看出来是系统缺省的用来存放 32 位类软件的,当然了软件设计得当的话,其运行应该不受软件安装位置的影响。
你说不行,无法连接db 什么的,具体信息又不给,怎么判定问题的可能呢?比如说不行,怎么个不行法,你那 dll 是动态还是静态的,动态的话 LoadLibrary() 出错后 GetLastError() 下看看返回什么错误代码,表明什么意思;静态的,系统应该有提示吧,什么信息,或者暂改动态法看看以便更灵活掌握信息。
用的什么开发环境和工具,还是到专门的相应的板块去吧;这里毕竟只是系统应用层面上的板块,而非程序设计方面的。
你说不行,无法连接db 什么的,具体信息又不给,怎么判定问题的可能呢?比如说不行,怎么个不行法,你那 dll 是动态还是静态的,动态的话 LoadLibrary() 出错后 GetLastError() 下看看返回什么错误代码,表明什么意思;静态的,系统应该有提示吧,什么信息,或者暂改动态法看看以便更灵活掌握信息。
用的什么开发环境和工具,还是到专门的相应的板块去吧;这里毕竟只是系统应用层面上的板块,而非程序设计方面的。
#6
用pb啊,静态定义调用的吧,不能连续接oracle,问题报错和pl sql developer连续oracle时一样,
#7
pl sql developer安装在带Program Files (x86)目录下也不能连oracle
#8
怎么就找不到合理的答案呢。
#9
Program Files (x86) 问题出在这里,不知道是否是pb的bug还是什么原因,()是不能作为路径的。
#10
问题在于我现在没把pb安装在 Program Files (x86) 目录下面,还是不能用啊,程序不能在当前目录下面找到调用的dll文件,必须复制dll文件到c:\windows\SysWOW64目录下面,或者在path中设置路径指向调用dll文件所在的目录才行啊,,,
#1
dll 加载,分为静态加载和动态加载;动态加载的模块名又分为是否带路径,静态加载是不带路径的。带路径的就不说了;不带路径,对模块文件有个搜索顺序的,这个顺序不会变,msdn 的说法依次为:
1. 应用程序所在目录
2. 当前目录。程序不一定都是从其所在目录启动的,在“快捷方式”里就有设置启动目录,其即为这里的当前目录
3. 系统目录,对 64 位程序即为 SysWOW64 ,对 32 位程序为 System32 。是对程序而言,不是对系统。
4. Windows 目录
5. path 系统变量所指定的目录
所以,自己单独使用的 dll,和应用程序放在一起比较合适;会被其它共用到的,放到系统目录下更好。
1. 应用程序所在目录
2. 当前目录。程序不一定都是从其所在目录启动的,在“快捷方式”里就有设置启动目录,其即为这里的当前目录
3. 系统目录,对 64 位程序即为 SysWOW64 ,对 32 位程序为 System32 。是对程序而言,不是对系统。
4. Windows 目录
5. path 系统变量所指定的目录
所以,自己单独使用的 dll,和应用程序放在一起比较合适;会被其它共用到的,放到系统目录下更好。
#2
xp下原来都是放在开发环境文件的当前目录下的,一直可用,用win7 64bit,程序刚启动时也可用,运行几次后就不行了,郁闷啊,,,
#3
运行几次后就不行了,具体什么意思、什么表现?是一次开机后刚开始可以,程序运行会儿就不行了,还是程序关闭后再打开就不行了,还是前几次开机运行都可以,后来就再不行了?不行的话,什么提示和反应?应该是程序本身有问题吧,和其所在目录没有关系的。
#4
就是在开发环境下修改代码,然后运行,这样弄几次就不行了,必须关闭程序再次打开才行,win7 64bit下Program Files (x86)目录是不是有什么特殊的含义啊,好像开发环境安装时,选择安装在这个目录下就可以,但其他功能就不行了,比如oracle 10g接口就不能装在这个下面,否则无法连接db,,,
#5
Program Files (x86) 这个目录从名字也可以看出来是系统缺省的用来存放 32 位类软件的,当然了软件设计得当的话,其运行应该不受软件安装位置的影响。
你说不行,无法连接db 什么的,具体信息又不给,怎么判定问题的可能呢?比如说不行,怎么个不行法,你那 dll 是动态还是静态的,动态的话 LoadLibrary() 出错后 GetLastError() 下看看返回什么错误代码,表明什么意思;静态的,系统应该有提示吧,什么信息,或者暂改动态法看看以便更灵活掌握信息。
用的什么开发环境和工具,还是到专门的相应的板块去吧;这里毕竟只是系统应用层面上的板块,而非程序设计方面的。
你说不行,无法连接db 什么的,具体信息又不给,怎么判定问题的可能呢?比如说不行,怎么个不行法,你那 dll 是动态还是静态的,动态的话 LoadLibrary() 出错后 GetLastError() 下看看返回什么错误代码,表明什么意思;静态的,系统应该有提示吧,什么信息,或者暂改动态法看看以便更灵活掌握信息。
用的什么开发环境和工具,还是到专门的相应的板块去吧;这里毕竟只是系统应用层面上的板块,而非程序设计方面的。
#6
用pb啊,静态定义调用的吧,不能连续接oracle,问题报错和pl sql developer连续oracle时一样,
#7
pl sql developer安装在带Program Files (x86)目录下也不能连oracle
#8
怎么就找不到合理的答案呢。
#9
Program Files (x86) 问题出在这里,不知道是否是pb的bug还是什么原因,()是不能作为路径的。
#10
问题在于我现在没把pb安装在 Program Files (x86) 目录下面,还是不能用啊,程序不能在当前目录下面找到调用的dll文件,必须复制dll文件到c:\windows\SysWOW64目录下面,或者在path中设置路径指向调用dll文件所在的目录才行啊,,,