小编Noa*_*m M的帖子

更快的Math.exp()通过JNI?

我需要Math.exp()经常从java 计算,是否有可能让本机版本比java的运行速度更快Math.exp()

我只尝试了jni + C,但它比普通的java慢.

c java optimization java-native-interface

10
推荐指数
4
解决办法
4055
查看次数

自.NET 4.0以来XAML绑定日期时对象的自动更正行为?

在将应用程序从.NET 3.5引入.NET 4.0时,我遇到了这个特殊的问题.

(文化是nl-BE)

我将这样的TextBox(在XAML中)与PropertyChanged上的UpdateSourceTrigger绑定到DateTime值(LostFocus按预期工作,但需要进行类型验证):

<TextBox Height="23" Margin="146,0,105,97.04" Name="txb_Geboortedatum" VerticalAlignment="Bottom">
        <TextBox.Text>
            <Binding Path="Geboortedatum" StringFormat="d" 
                     UpdateSourceTrigger="PropertyChanged">
                <Binding.ValidationRules>
                    <ExceptionValidationRule />
                </Binding.ValidationRules>
            </Binding>
        </TextBox.Text>
</TextBox>
Run Code Online (Sandbox Code Playgroud)

现在,当这个文本框的内容是(例如)10/12/2000并且我想将它编辑为09/03/1981 时,当我将光标放在2000年底并开始'退格时' 发生了一些令人讨厌的自动修正 '离开年份值(当只有'2000'的第一个数字('2')自动离开时 - 包括光标跳转 - 再次变为2002).我可以禁用此自动更正吗?

我似乎无法找到具体介绍此行为的内容.FormatString=c对于货币值,也会出现相同的"问题" .

到目前为止我尝试过的:

  1. 将FormatString更改为更明确的{0}{dd/MM/yyyy}(同样的问题:当剩下2位数字时开始自动更正).
  2. 禁用我已添加到App.xaml.cs的以下代码段:

    FrameworkElement.LanguageProperty.OverrideMetadata(
        typeof(FrameworkElement), 
        new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(
            CultureInfo.CurrentCulture.IetfLanguageTag)));
    
    Run Code Online (Sandbox Code Playgroud)

这个片段的原因首先包含在内:看一下这个链接.

我错过了一些明显的东西吗?我无法在3.5中重现这一点.我是否真的必须推出自己的ValueConverters才能使其正常工作?这看起来像是StringFormat在3.5 sp 1中引入的退步.

DateTimeFormatInfo.CurrentInfo.GetAllDateTimePatterns('d')确实的输出看起来略有不同,但没有什么可以立即解释行为(可能不相关):

.NET 3.5        .NET 4.0

d/MM/yyyy       d/MM/yyyy
d/MM/yy         d/MM/yy
dd-MM-yy        dd-MM-yy
dd.MM.yy        dd.MM.yy
yyyy-MM-dd      dd.MMM.yyyy
                yyyy-MM-dd

.net c# wpf xaml .net-4.0

10
推荐指数
1
解决办法
841
查看次数

OpenSSL无法加载公钥

尝试在OSX Yosomite 10.10.2上通过命令行加密文本消息

创建这样的.pem公钥:

ssh-keygen -f ~/.ssh/id_rsa.pub -e -t PKCS8 > id_rsa.pem
Run Code Online (Sandbox Code Playgroud)

如果我尝试加密myMessage.txt

openssl rsautl -encrypt -inkey ~/.ssh/id_rsa.pem -pubin -in ~/Desktop/myMessage.txt -out ~/Desktop/encrypted.txt
Run Code Online (Sandbox Code Playgroud)

我明白了 unable to load Public key

如果我然后输入:

openssl asn1parse -in id_rsa.pem
Run Code Online (Sandbox Code Playgroud)

返回: Error: offset too large

但我不知道如何解决它.我应该改变什么来使它工作?

openssl ssh-keys

10
推荐指数
2
解决办法
2万
查看次数

MahApps - 如何禁用默认按钮的自动大写

我已经开始在我的WPF应用程序中引入MahApps .Metro(非常棒),我最喜欢的按钮是默认的.问题是它将我的所有文本都放在大写中,我不想要它.

wpf mahapps.metro

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

您将如何在C#3.0中构建桌面应用程序

我在C#3.0中创建了一个简单的桌面应用程序来学习一些C#,wpf和.Net 3.5.我的应用程序基本上从csv文件中读取数据并将其存储在SQL Server CE数据库中.我使用sqlmetal为数据库生成ORM代码.我对这个应用程序的第一次迭代是丑陋的,我正在重构它.

这让我想到了我的问题.您将如何在C#中构建桌面数据库应用程序?什么是最佳做法?

您是否创建了使用sqlmetal生成的代码的数据库抽象层(DAL)?或者生成的代码是否足以构成抽象?

如果使用DAL模式,是将它设为单例还是静态成员?您是否将View-Model-ModelView模式与DAL模式一起使用?

如果这看起来像一个长期未解决的问题,请道歉,但我最近一直在考虑这个问题.我看到很多关于如何在C#中构建企业n层应用程序的示例,但在构建独立桌面应用程序时却没有那么多.

c# architecture wpf

9
推荐指数
1
解决办法
3269
查看次数

在滚动条上的WPF TreeView中拖放

我们在我们的应用程序和窗口中使用MVVM模式,我们有两个TreeView允许从第一个树中拖动项目并将其放在第二个树上.为了避免代码落后,我们使用行为绑定对ViewModel的拖放.

该行为实现非常类似于此示例,并且像魅力一样工作,有一个错误.

场景是一个比显示它的窗口大的树,因此它有一个垂直滚动条.当选择一个项目并且用户想要滚动时,程序开始拖放(这会阻止实际滚动,因此不是我们想要的).

由于滚动条包含在TreeView控件中,因此这并不奇怪.但是我无法确定鼠标是否在滚动条上方.

TreeViewItems通过主题使用边框,面板等为代表,所以一个简单的InputHitTest并不像人们想象的那么简单.

有没有人遇到过同样的问题?

如果需要更多代码覆盖问题,我可以粘贴.xaml中的一些行.


编辑

合并Nikolays链接我使用IsMouseOverScrollbar方法解决了问题,如果将来有人遇到此问题,必须通过以下方式更改上面的代码:

private static void PreviewMouseMove(object sender, MouseEventArgs e)
{
    if (e.LeftButton != MouseButtonState.Pressed || startPoint == null)
        return;

    if (!HasMouseMovedFarEnough(e))
        return;

   if (IsMouseOverScrollbar(sender, e.GetPosition(sender as IInputElement)))
   {
       startPoint = null;
       return;
   }

   var dependencyObject = (FrameworkElement)sender;
   var dataContext = dependencyObject.GetValue(FrameworkElement.DataContextProperty);
   var dragSource = GetDragSource(dependencyObject);

   if (dragSource.GetDragEffects(dataContext) == DragDropEffects.None)
        return;

   DragDrop.DoDragDrop(
            dependencyObject, dragSource.GetData(dataContext), dragSource.GetDragEffects(dataContext));
}


    private static bool IsMouseOverScrollbar(object sender, Point …
Run Code Online (Sandbox Code Playgroud)

c# wpf treeview drag-and-drop behavior

8
推荐指数
1
解决办法
2393
查看次数

Sqlite + c#:无法打开数据库文件

private void SetConnection()
{
     string a = string.Format(@"Data Source={0};Version=3;New=False;Compress=True;", "~/lodeDb.db");
     sql_con = new SQLiteConnection(a);
}

private void ExecuteQuery(string txtQuery)
{
     SetConnection();
     sql_con.Open();
     sql_cmd = sql_con.CreateCommand();
     sql_cmd.CommandText = txtQuery;
     sql_cmd.ExecuteNonQuery();
     sql_con.Close();
}
Run Code Online (Sandbox Code Playgroud)

当我运行sql_cmd.ExecuteNonQuery时,Sqlexception是"无法打开数据库文件".我的在线托管上的"lodeDb.db"文件,我认为数据源是错误的.可以告诉我在线托管中是否有db文件.如何设置连接的数据通过谢谢注意:权限文件在这里没有问题

c# sqlite connection

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

Unix域:connect():没有这样的文件或目录

如标题中所述,我的connect()调用带有相应地址的unix域类型套接字导致错误ENOENT:没有这样的文件或目录.

两个套接字已正确初始化,并相应地创建和绑定套接字文件.服务器和客户端套接字在不同的进程中运行,但客户端进程是fork() - ed和execl() - ed.这也是我解析客户端和服务器套接字的地址,我用它来设置客户端套接字.服务器进程正在使用pthreads.

这是我的connect()尝试:

struct sockaddr_un address;
address.sun_family = AF_UNIX;
memcpy(address.sun_path, filepath.c_str(), filepath.length());
address.sun_path[filepath.length()] = '\0';

if(-1 == connect(this->unix_domain_descriptor_.descriptor(),       \
                (struct sockaddr*)&address,                       \
                size))
{
    global::ExitDebug(-1, "connect() failed", __FILE__, __LINE__);
    return -1;
}
Run Code Online (Sandbox Code Playgroud)

我尝试了不同的大小值,例如:

//  this is from unix(7) man page. It doesn't work neither with nor without "+1"
socklen_t size =  offsetof(struct sockaddr_un, sun_path);
          size += strlen(address.sun_path) + 1;
Run Code Online (Sandbox Code Playgroud)
//  this is from one of my books about linux programming …
Run Code Online (Sandbox Code Playgroud)

c++ unix-socket

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

QMYSQL驱动程序可用但未加载

如何qmysql在Qt中加载驱动程序?我有以下代码产生这些结果:

("QSQLITE", "QMYSQL", "QMYSQL3") 
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3
Run Code Online (Sandbox Code Playgroud)

有关如何加载它的任何建议?

mysql qt qt5

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

在C程序中获取系统命令输出

有没有更好的方法呢?

int numOfCPU;
system("grep -c ^processor /proc/cpuinfo >> /tmp/cpuinfo");
FILE *fp = fopen("/tmp/cpuinfo", "r");
fscanf(fp, "%d", &numOfCPU);
fclose(fp);
system("rm /tmp/cpuinfo");
Run Code Online (Sandbox Code Playgroud)

我不想创建中间文件然后将其删除.

编辑:

它不是从文件中读取.命令可以是"ls"或"echo'Hello world'"

c unix io operating-system

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