小编Che*_*eng的帖子

确定DLL的加载路径

我希望我的应用程序在以下结构中.

Exe
 |
 |----- DLL\DLL.dll, DLL\common.dll 
 |
 |----- DLL2\DLL2.dll, DLL2\common.dll
Run Code Online (Sandbox Code Playgroud)

我的EXE将加载DLL

LoadLibraryEx(_T("DLL\\DLL.dll"), 0, 0);
LoadLibraryEx(_T("DLL2\\DLL2.dll"), 0, 0);
Run Code Online (Sandbox Code Playgroud)

DLL.dllDLL2.dll项目将common.dll通过lib文件链接.虽然会有2个不同的版本common.dll.

但是,在执行期间,Exe我希望将common.dll同一目录放在同一目录中Exe,但不能DLLDLL2.有没有办法解决这个问题,能够拥有上述目录结构.然而,仍然使用LIB来链接DLL/DLL2common.

c++ windows dll visual-studio

3
推荐指数
2
解决办法
4591
查看次数

Mako模板中的UnicodeEncodeError

我有以下文件

dummy.py

#!c:/Python27/python.exe -u

from mako import exceptions
from mako.template import Template

print "Content-type: text/html"
print

#VARIABLE = "WE" 
VARIABLE = "??"
template = Template(filename='../template/dummy.html', output_encoding='utf8')
try:
    print template.render(VARIABLE=VARIABLE)
except:
    print exceptions.html_error_template().render()
Run Code Online (Sandbox Code Playgroud)

dummy.html(以UTF-8格式保存)

hello world
????
${VARIABLE}
Run Code Online (Sandbox Code Playgroud)

我已经参考了http://www.makotemplates.org/docs/unicode.html的指示

但是,我仍然得到错误

UnicodeDecodeError:'ascii'编解码器无法解码位置0中的字节0xe6:序数不在范围内(128)

我错过了什么?

python mako

3
推荐指数
1
解决办法
1923
查看次数

自操作员覆盖 - 按引用返回或按副本返回

考虑以下代码?

我想知道,如果我改变它(功能体仍然相同)

error_code& operator|=(const error_code &e)
Run Code Online (Sandbox Code Playgroud)

error_code operator|=(const error_code &e)
Run Code Online (Sandbox Code Playgroud)

是否有可能发生的潜在错误?我看到的唯一区别是,它将执行额外的复制操作,除此之外,没什么大不了的.

那么,我应该坚持通过引用返回,还是无所谓?


class error_code {
public:
 error_code() : hi(0), lo(0) {}
 error_code(__int64 lo) : hi(0), lo(lo) {}
 error_code(__int64 hi, __int64 lo) : hi(hi), lo(lo) {}

 // How about return by copy?
 error_code& operator|=(const error_code &e) {
  this->hi |= e.hi;
  this->lo |= e.lo;
  return *this;
 }

 __int64 hi;
 __int64 lo;
};

error_code operator|(const error_code& e0, const error_code& e1) {
 return error_code(e0.hi | e1.hi, e0.lo | e1.lo); 
}

int main() { …
Run Code Online (Sandbox Code Playgroud)

c++

3
推荐指数
1
解决办法
347
查看次数

我们总结XOR字符串加密比众所周知的加密安全性更低(Say Blowfish)

我想知道,结论是否公平,XOR字符串加密不如其他加密方法安全,Blowfish

这是因为对于这两种方法,他们的输入都是

  1. 未加密的字符串
  2. 一把密钥

string XOR(string value,string key)
{
    string retval(value);

    short unsigned int klen=key.length();
    short unsigned int vlen=value.length();
    short unsigned int k=0;
    short unsigned int v=0;

    for(v;v<vlen;v++)
    {
        retval[v]=value[v]^key[k];
        k=(++k<klen?k:0);
    }

    return retval;
}
Run Code Online (Sandbox Code Playgroud)

有没有证据表明如果选择相同的密钥,XOR加密方法比Blowfish更容易被"破坏" ?

c++ encryption

3
推荐指数
3
解决办法
653
查看次数

为什么在std字符串中间设置null没有任何效果

考虑

#include <string>
#include <iostream>

int main()
{
    /*
    hello
    5
    hel
    3
    */
    char a[] = "hello";
    std::cout << a << std::endl;
    std::cout << strlen(a) << std::endl;
    a[3] = 0;
    std::cout << a << std::endl;
    std::cout << strlen(a) << std::endl;

    /*
    hello
    5
    hel o
    5
    */
    std::string b = "hello";
    std::cout << b << std::endl;
    std::cout << b.length() << std::endl;
    b[3] = 0;
    std::cout << b << std::endl;
    std::cout << b.length() << std::endl;

    getchar();

}
Run Code Online (Sandbox Code Playgroud)

我希望它的std::string行为与 …

c++ stdstring

3
推荐指数
1
解决办法
1771
查看次数

如何使用long而不是int可以防御以下方法 - Effective Java

请考虑从Joshua Bloch - Effective Java,第263页中选择的以下代码

// Broken - requires synchronization!
private static volatile int nextSerialNumber = 0;
public static int generateSerialNumber() {
    return nextSerialNumber++;
}
Run Code Online (Sandbox Code Playgroud)

修复generateSerialNumber方法的一种方法是将synchronized修饰符添加到其声明中.这确保了多个调用不会交错,并且每次调用都将看到所有先前调用的效果.完成后,您可以并且应该从nextSerialNumber中删除volatile修饰符.要防止该方法,请使用long而不是int,或者如果nextSerialNumber即将换行则抛出异常.

  1. 我知道volatile在生成generateSerialNumber后我们可以删除synchronized它,因为它是多余的.但是,它会造成什么伤害吗?如果我同时具有同步和易失性,则会有任何性能损失

private static volatile int nextSerialNumber = 0;
public static synchronized int generateSerialNumber() {
    return nextSerialNumber++;
}
Run Code Online (Sandbox Code Playgroud)
  1. 什么,使用long而不是int意味着什么?我不明白这种防弹方法怎么样?

java

3
推荐指数
1
解决办法
476
查看次数

避免在NSIS中重复的功能代码

目前,我有以下脚本代码.

Section "Uninstall"
...
...
Call un.DeleteDirIfEmpty 
SectionEnd


Function GetJRE
    ; Call must not be used with functions starting with "un." in the non-uninstall sections.
    Call
FunctionEnd


Function un.DeleteDirIfEmpty
...
...
FunctionEnd

Function DeleteDirIfEmpty
...
...
FunctionEnd
Run Code Online (Sandbox Code Playgroud)

请注意,我需要提供2个版本的DeleteDirIfEmpty,以便可以在非卸载部分和卸载部分中执行相同的操作.

他们的代码是相同的,只是命名是不同的.un.DeleteDirIfEmptyDeleteDirIfEmpty

如何只有1个函数,但可以被任何部分调用?

nsis

3
推荐指数
1
解决办法
1716
查看次数

为什么Java SE编译的JAR文件能够在Android中执行

在Android OS中,我能够运行在桌面环境下编译的几个Java JAR文件.例如,jtransforms

我可以知道为什么会这样吗?我认为来自Oracle的JVM和来自Google的Dalvik VM使用两种不同的字节代码格式?为什么Java SE编译的JAR文件能够在Android中执行?

java android

3
推荐指数
1
解决办法
286
查看次数

单击微调器时显示自定义对话框

目前,我有dialog模式中的微调器.

        <Spinner
            android:spinnerMode="dialog"
            android:id="@+id/genderSpinner"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
            android:entries="@array/gender_array"
            android:prompt="@string/gender_prompt" />
Run Code Online (Sandbox Code Playgroud)

它会显示这样的东西

在此输入图像描述

但是,有时候,我希望能够控制要显示的对话框类型.例如,我想在单击微调器时显示带有日期选择器的对话框.

请注意,Google日历确实有这样的控件.

在此输入图像描述

我可以知道如何实现这一目标吗?

android

3
推荐指数
1
解决办法
9474
查看次数

缩小两个活动之间的过渡动​​画

我检查了API代码附带的过渡动画,我找到了动画zoom_enter和zoom_exit,其中活动1下沉IN以显示活动2.我需要反过来.我需要活动2从内部缩小并进入顶部.(我希望你能得到我).这种类型的动画在iphone屏幕转换时是相同的.

下面的代码是我不需要的效果.这是zoom_enter.xml的代码

<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/decelerate_interpolator">
    <scale android:fromXScale="2.0" android:toXScale="1.0"
       android:fromYScale="2.0" android:toYScale="1.0"
       android:pivotX="50%p" android:pivotY="50%p"
       android:duration="@android:integer/config_mediumAnimTime" />
</set>
Run Code Online (Sandbox Code Playgroud)

这是zoom_exit.xml的代码

<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/decelerate_interpolator"
    android:zAdjustment="top">
    <scale android:fromXScale="1.0" android:toXScale=".5"
       android:fromYScale="1.0" android:toYScale=".5"
       android:pivotX="50%p" android:pivotY="50%p"
       android:duration="@android:integer/config_mediumAnimTime" />
    <alpha android:fromAlpha="1.0" android:toAlpha="0"
        android:duration="@android:integer/config_mediumAnimTime"/>
</set>
Run Code Online (Sandbox Code Playgroud)

然后在startActivity之后我调用下面的方法:

 overridePendingTransition(R.anim.zoom_enter, R.anim.zoom_exit);
Run Code Online (Sandbox Code Playgroud)

任何人都可以建议我如何更改上述文件,以解释我的屏幕转换?

android android-animation

3
推荐指数
1
解决办法
1万
查看次数