我们有一个遗留的VB6应用程序,它使用Crystal Reports XI生成打印报告.我们通过经验发现,如果Crystal Reports打印引擎选择了错误版本的usp10.dll(Windows Uniscribe库),它就会崩溃.
一位客户在其Windows 7计算机上一直存在打印问题(运行Windows 7 Enterprise,32位).但是,我们还有一些其他客户运行各种版本的Windows 7,没有任何问题.
在其中一台出现打印问题的计算机上,我注意到usp10.dll该文件夹中存在旧版本(与Crystal Reports XI不兼容)C:\Program Files\Common Files\Microsoft Shared\Office10\.我不确定是什么应用程序安装了这些文件,因为客户没有安装Office 2002(所以我假设另一个应用程序安装了它们).但是,我暂时重命名了该文件,我们的应用程序能够正确打印,因此我们的应用程序似乎最初正在加载该文件的版本,这导致了崩溃.
崩溃仅在用户尝试打印报告时发生.我们的应用程序直接依赖于craxdrt.dll(Crystal Reports ActiveX Designer运行时库)和crviewer.dll(Crystal ActiveX报表查看器库),无论我们是通过craxdrt.dll还是通过Report Viewer控件直接打印,都会发生崩溃.
过去,我们通过将已知良好版本的usp10.dll复制到我们的应用程序目录并创建.local文件来启用DLL重定向来解决此问题.在客户站点,我尝试了这个,并尝试了为我们的EXE 创建.local文件夹并将usp10.dll放在那里的替代方法,但这两种方法都没有在我连接的机器上运行.
我注意到usp10.dll是Windows中的一个"已知"DLL(它有一个条目HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\KnownDLLs),但我在另一台Windows 7机器上运行我的应用程序(运行专业版,32位),这里也列出了DLL注册表中的已知DLL,通过使用Dependency Walker,我可以看到重定向正在该计算机上运行.这有点令人困惑,因为Microsoft 文档声明已知的DLL无法重定向.此外,正如我在问题标题中暗示的那样,我们的主要EXE不使用清单文件(Microsoft文档声明存在清单,嵌入式或独立式,禁用DLL重定向).
所以,我的问题是,有没有其他原因可以解决为什么DLL重定向可以在某些机器而不是其他机器上运行,这是否与Windows 7和Windows XP之间的差异有关?我曾考虑删除KnownDLLs注册表项中的所有内容,但由于重定向工作在此处具有相同设置的计算机上KnownDLLs,我不确定是否会实际解决问题,我不想删除该密钥我不需要.我还没有机会再次连接到客户的机器来运行Dependency Walker,但我不确定我是否能够解释它的日志(即使在它工作的机器上,我看到了很多LoadLibrary调用usp10.dll 指向重定向文件夹以外的文件夹,但有些调用显然已重定向,所以我不确定这意味着什么).
编辑:我应该还提到,每一次我们也已检查计算机具有的另一个副本usp10.dll中System32的文件夹.看着克里斯的回答 …
在Mac上使用TextMate,可以使用"隐形"显示
View -> Show Invisibles
Run Code Online (Sandbox Code Playgroud)
但是没有显示空格与制表符,并且"首选项"似乎也没有任何条目可以更改.有没有办法向他们展示?这是因为一些较老的编码器可能将标签或空格混合在一起,因此在编辑器中看起来不错的内容实际上可能是错位的.(编辑器将标签显示为2个空格)
a = {"a":"çö"}
b = "çö"
a['a']
>>> '\xc3\xa7\xc3\xb6'
b.decode('utf-8') == a['a']
>>> False
Run Code Online (Sandbox Code Playgroud)
那里发生了什么?
编辑=对不起,这是我的错.它仍然是假的.我在Ubuntu 10.04上使用Python 2.6.
我想要一个参数从查询(或其他)加载可用值和"允许多个值".当我这样做时,列表以"全选"开头.
这很好,但似乎无法将参数默认为"全选",这在我的情况下是不可接受的.这个特定的报告将有8个可选参数,如果htey必须多次选择"全选",这几乎不是可选的.
因此,我创建了自己的"..All"选项和接受它的代码.我可以默认,但用户看到:
(Select All)
..All
Run Code Online (Sandbox Code Playgroud)
这看起来不专业.我在网上搜索过,似乎没有找到这个问题的答案.
有没有办法抑制(全选)或达到我需要的?有任何想法吗?
我有一个简单的项目,有3个依赖项,但出于某种原因,当我从eclipse运行时运行 - > maven install.我没有得到依赖.不在快照罐里面,不在外面......任何想法?这是我的pom:
<?xml version="1.0"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com</groupId>
<artifactId>trade</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>trade</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
Run Code Online (Sandbox Code Playgroud) 我在新的Windows 7上安装了Eclipse 3.6 64位.我尝试使用首选项窗口的Keys部分设置一些键绑定,即:
Alt+ C- 使用SVN提交
Alt+ U- 使用SVN更新
Alt+ R- 使用SVN恢复
这一切在过去在Windows XP上的Eclipse 3.5 32bit上完美无缺,但它在我最近的设置中无法正常工作.当我导航到"团队"菜单时,快捷方式会出现在上述操作旁边(即Eclipse 在"更新到HEAD"旁边写入Alt+ U).
有什么建议?
我需要将像"hello2"这样的ASCII字符串转换为十进制和十六进制表示形式(数字形式,具体类型无关紧要).所以,"你好"将是:68 65 6c 6c 6f 32 in HEX.如果不使用巨大的if语句,我如何在C++中执行此操作?
编辑:好的,这就是我选择的解决方案:
int main()
{
string c = "B";
char *cs = new char[c.size() + 1];
std::strcpy ( cs, c.c_str() );
cout << cs << endl;
char a = *cs;
int as = a;
cout << as << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我有一堆跨多个表命名相同的字段(我继承了它 - 不要责怪我;)。
是否可以通过通配符自动分配/添加别名,而不是详细设置所有别名?
我正在设想类似的东西(当然这实际上并不起作用):
SELECT t1.*,t2.* as alias2.*, t3.* as alias3.*
Run Code Online (Sandbox Code Playgroud)
所以我会得到返回的字段,例如:
name, address, city, state
alias2.name, alias2.address, alias2.city, alias2.state
alias3.name, alias3.address, alias3.city, alias3.state
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个文件夹内容的NSStrings数组,我将其拖入我的项目......但是当我计算数组中的项目之后,它总是返回0;
所以,我项目中的文件夹看起来像这样
-Cards
-Colors
Blue.png
Green.png
Orange.png
Yellow.png
Purple.png
Black.png
Run Code Online (Sandbox Code Playgroud)
我的代码试图获取这个文件列表(颜色pngs)
NSError *error = nil;
NSString *pathString = [[NSString alloc] init];
pathString = [[NSString alloc] initWithString:@"/Cards/Colors/"];
NSArray *fileList = [[NSArray alloc] init];
fileList = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:pathString error: &error];
[pathString release];
NSLog(@"%@", error);
// this is always 0
NSLog(@"file list has %i items", [fileList count]);
Run Code Online (Sandbox Code Playgroud)
我得到的NSError是
Error Domain=NSCocoaErrorDomain Code=260 "The operation couldn’t be completed. (Cocoa error 260.)" UserInfo=0x596db00 {NSUserStringVariant=(
Folder
), NSFilePath=/Cards/Color/, NSUnderlyingError=0x5925ef0 "The operation couldn’t be completed. No such …Run Code Online (Sandbox Code Playgroud)