我需要Math.exp()经常从java 计算,是否有可能让本机版本比java的运行速度更快Math.exp()?
我只尝试了jni + C,但它比普通的java慢.
在将应用程序从.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对于货币值,也会出现相同的"问题" .
到目前为止我尝试过的:
{0}{dd/MM/yyyy}(同样的问题:当剩下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
尝试在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
但我不知道如何解决它.我应该改变什么来使它工作?
我已经开始在我的WPF应用程序中引入MahApps .Metro(非常棒),我最喜欢的按钮是默认的.问题是它将我的所有文本都放在大写中,我不想要它.
我在C#3.0中创建了一个简单的桌面应用程序来学习一些C#,wpf和.Net 3.5.我的应用程序基本上从csv文件中读取数据并将其存储在SQL Server CE数据库中.我使用sqlmetal为数据库生成ORM代码.我对这个应用程序的第一次迭代是丑陋的,我正在重构它.
这让我想到了我的问题.您将如何在C#中构建桌面数据库应用程序?什么是最佳做法?
您是否创建了使用sqlmetal生成的代码的数据库抽象层(DAL)?或者生成的代码是否足以构成抽象?
如果使用DAL模式,是将它设为单例还是静态成员?您是否将View-Model-ModelView模式与DAL模式一起使用?
如果这看起来像一个长期未解决的问题,请道歉,但我最近一直在考虑这个问题.我看到很多关于如何在C#中构建企业n层应用程序的示例,但在构建独立桌面应用程序时却没有那么多.
我们在我们的应用程序和窗口中使用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) 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文件.如何设置连接的数据通过谢谢注意:权限文件在这里没有问题
如标题中所述,我的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) 如何qmysql在Qt中加载驱动程序?我有以下代码产生这些结果:
("QSQLITE", "QMYSQL", "QMYSQL3")
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3
Run Code Online (Sandbox Code Playgroud)
有关如何加载它的任何建议?
有没有更好的方法呢?
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'"