问题列表 - 第4309页

如何编写一个不会改变状态的应用程序(用函数式语言)?

我希望有一天能学习函数式编程,但我不明白除了简单的数学之外我怎么能用它来做任何事情.

例如:一个简单的Web浏览器添加书签功能需要引起某种变异,这样下次用户点击书签时,新书签就会出现在列表中.

functional-programming immutability

6
推荐指数
1
解决办法
410
查看次数

找不到Dumpbin.exe

我的系统上没有看到dumpbin.exe.我的系统上有Visual Studio 2005.当我在命令行上键入dumpbin时,它表示无法识别的命令.

默认情况下是否附带Visual Studio,还是必须显式添加此工具?

.net c# c++ visual-studio-2005 visual-studio

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

使用str_replace进行PHP模板化?

我认为PHP模板系统的基本原理是字符串替换,对吧?所以我可以使用一个字符串来保存我的html模板代码

$str_template = "<html><head><title>{the_title}</title><body>{the_content}</body></html>"
Run Code Online (Sandbox Code Playgroud)

并在下面的代码中只需执行str_replace将数据推送到我的模板变量中

str_replace( $str_template, '{the_title}', $some_runtime_generated_title );
str_replace( $str_template, '{the_content}', $some_runtime_generated_content );
Run Code Online (Sandbox Code Playgroud)

然后终于

echo $str_template; 
Run Code Online (Sandbox Code Playgroud)

这有希望使整个变量传递过程更快一些吗?我知道这可能是一个奇怪的问题,但有人试过吗?

php templates

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

Java是否支持RAII /确定性破坏?

自从我使用Java以来​​已经至少5年了,当时,只要你想分配一个需要清理的对象(例如套接字,数据库句柄),你就必须记得添加一个finally块并调用清理方法.那里.

相比之下,在C++(或其他对象生命周期是确定性的语言,例如Perl)中,类实现者将定义一个析构函数,只要该类的对象超出范围,该函数就会执行清理.这种方法的优点是对象的用户不会忘记清理它 - 即使抛出异常,也会自动调用析构函数.这种方法以RAII的相当可怕的名字命名 - "资源获取是初始化".

根据我的经验,做"RAII方式"的事情在不必担心是否以及何时发生资源解除分配方面为我节省了大量精神开销.我们正在考虑将Java用于一个中型项目,我想知道自从我上次查看它以来,语言中添加的许多新功能是否存在某种确定性破坏.(我希望因为我的抱怨"Java没有RAII" 在这个帖子上被斥责,但到目前为止我还没能通过谷歌搜索找到任何细节.)

所以,如果有人能够指出一些关于如何在Java中实现这一目标的介绍性材料,那就太棒了!

java raii

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

ifstream,行尾和移动到下一行?

我如何使用std :: ifstream检测并移动到下一行?

void readData(ifstream& in)
{
    string sz;
    getline(in, sz);
    cout << sz <<endl;
    int v;
    for(int i=0; in.good(); i++)
    {
        in >> v;
        if (in.good())
            cout << v << " ";
    }
    in.seekg(0, ios::beg);
    sz.clear();
    getline(in, sz);
    cout << sz <<endl; //no longer reads
}
Run Code Online (Sandbox Code Playgroud)

我知道很好会告诉我是否发生了错误,但一旦发生这种情况,流不再有效.如何在阅读另一个int之前检查我是否在行尾?

c++ std ifstream

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

将代码注入运行WPF应用程序的最佳方法

这是我的任务:

  • 将自定义托管代码注入正在运行的托管WPF应用程序(即我的代码应该在其他AppDomain中运行)
  • 注入的代码必须在UI线程上执行

当我说"最好"时,我的意思是:

  • 注射过程必须尽可能稳定(没有线程死锁等)
  • 代码应该在x86和x64平台上运行没有问题(特别是在Vista x64上)

最小的用例

  • 选择运行WPF程序
  • 注入自定义代码
  • 注入代码将目标进程主窗口的标题更改为"Code Injected"

我正在评估的解决方案:

1)通过窗口挂钩注入(如在Snoop中)

优点:

  • 注入的代码在UI线程上运行

缺点:

  • 需要混合(c ++/cli)外部dll
  • 很难调试

2)通过EasyHook库注入

优点:

  • 库看起来坚固且经过充分测试

缺点:

  • 没有找到在UI线程上运行代码的方法
  • 注入库必须在GAC中签名并安装

3)通过WriteProcessMemory/CreateRemoteThreadEx/LoadLibrary注入

优点:

  • 简单

缺点:

  • 非常不稳定(代码必须在DllMain中执行,需要CLR托管等)

我将使用方法#1.你能推荐一个更好的方法吗?

在非托管DLL中是否有基于CLR托管的体面技术?

请注意,我知道这些问题:

.net wpf code-injection

12
推荐指数
1
解决办法
2604
查看次数

"动态"XSLT提供webbrowser控件?

我经常在应用程序中使用HTML输出,到目前为止我已经使用了一些简单的例程来构建HTML字符串.我现在想尝试一些不同的东西:

我想将数据序列化为XML,并提供一些XSLT模板来生成webbrowser控件的HTML.我让它静态工作(通过编写XSL慢慢挖掘),但我需要动态更改XSL文档的一些属性:过滤器,路径等,以跟随当前的UI选择.

数据足够小,以至于更改时的XML序列化不应成为问题.我想使用"静态"外部XSL文件(以便用户可以在一定程度上自定义输出),但需要调整.

我的问题:

这个想法在技术上是否合理?
我可以使用XML和XSL文档动态提供Web浏览器控件吗?我可以动态修改XSL中的选定路径元素和属性(即不生成新文件)吗?如何在Web浏览器控件中执行此操作?(一些让我入门的指针会很好..)

[编辑]感谢大家,它的工作:D [/ edit]

c# xml xslt webbrowser-control

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

编码实践:在矩阵乘法中按值或参考值返回?

我正在写,参照这个问题这一个,我昨天写.经过一些文档记录后,我觉得我想做的事情(以及我认为可行的事情)几乎是不可能的,如果不是不可能的话.有几种方法可以实现它,因为我不是一个经验丰富的程序员,我问你会选择哪种方式.我再次解释我的问题,但现在我有一些解决方案需要探索.

我需要的

我有一个Matrix类,我想在矩阵之间实现乘法,以便类的使用非常直观:

Matrix a(5,2);
a(4,1) = 6 ;
a(3,1) = 9.4 ;           
...                   // And so on ...

Matrix b(2,9);
b(0,2) = 3;
...                   // And so on ...

// After a while
Matrix i = a * b;
Run Code Online (Sandbox Code Playgroud)

我昨天有什么

目前我超载了两个操作员operator*,operator=并且直到昨天晚上才以这种方式定义:

Matrix& operator*(Matrix& m);
Matrix& operator=(Matrix& m);
Run Code Online (Sandbox Code Playgroud)

operator*Matrix return = new Matrix(...)在堆上实例化一个新的Matrix对象(),设置值,然后只需:

return *result;
Run Code Online (Sandbox Code Playgroud)

我今天拥有的

讨论之后,我决定以"不同的方式"实现它,以避免用户被任何类型的指针打扰并保持使用不变."不同的方式"是通过值传递operator*的返回值:

Matrix operator*(Matrix& m);
Matrix& operator=(Matrix& m);
Run Code Online (Sandbox Code Playgroud)

operator*return在堆栈上实例化,设置值然后返回对象.

这种方法存在问题:它不起作用.operator =期望Matrix&和operator*返回一个Matrix.此外,这种方法对我来说看起来并不那么好,原因是另一个原因:我正在处理矩阵,这可能非常大,而且这个库的目标是1)对我的项目来说足够好2)快,所以可能通过按价值不应该是一种选择.

我探讨了哪些解决方案

好吧,按照前面 …

c++ scope return reference

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

构建DLL文件时,生成的LIB文件是否包含DLL名称?

在Visual C++中,当我构建一个dll时,输出文件是.dll和.lib.

是.lib文件中内置的dll的名称.

我问这个问题的原因是:当我通过导入这个dll并运行exe来构建我的exe时,exe会尝试找到dll以将其加载到进程地址空间中.

由于我们只是在项目属性中指定库名(.lib文件),因此exe如何知道dll的名称.

注意:我在dumpbin libary文件(.lib)中看到它不包含dll的名称.

c++ winapi linker

12
推荐指数
1
解决办法
6554
查看次数

在执行document.ready之前,JQuery正在等待加载图像

更新: 此错误已被至少两个其他人确认.即使您没有阅读我的完整帖子 - 如果您正在阅读本文并使用JQuery 1.3.1,那么如果您依赖于在DOM完成时但在页面图像加载之前要执行的任何处理程序,请停止使用它.

Update2:感谢Tom(用户ID 20!)在jQuery bug跟踪器上发布了票证链接.

Update3 - 2009/01/28:该问题已得到妥善解决(对于那些无法恢复到1.2.6的人来说).对于目前使用1.3.1且需要立即修复的任何人,您可以阅读下面接受的答案以获取方向.谢谢约翰.


我刚刚升级到JQuery 1.3.1,我花了几个小时才意识到我心爱的人

$(function( ) {  ... }
Run Code Online (Sandbox Code Playgroud)

语法现在在执行函数体之前等待整个页面加载(包括图像).在尝试整合雅虎的菜单时,我看到了奇怪的行为.(幸运的是,我的页面上有一些缓慢的加载图像,这让我意识到了这个问题)!

我做了一个测试文件,因为我认为发生了一些更复杂的事情,但即使这个简单的文件,我仍然有相同的症状.

<head>
   <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>   
   <script>
    $(function() {    
      alert("Ready"); 
    });
  </script>
</head>

<body>      
  <img src="<PATH_TO_DYNAMIC_IMAGE>_1.jpg" />
  <img src="<PATH_TO_DYNAMIC_IMAGE>_2.jpg" />
  <img src="<PATH_TO_DYNAMIC_IMAGE>_3.jpg" />
  <img src="<PATH_TO_DYNAMIC_IMAGE>_4.jpg" />       
</body>
Run Code Online (Sandbox Code Playgroud)

不同版本的JQuery有不同的结果:

  • 版本1.2.6中发生的情况是立即显示警报框,然后我看到后面加载的图像(预期和记录的行为).
  • 版本1.3.1中发生的是图像全部加载,然后才会显示警告框.

这是怎么回事!这是一个新功能(我无法想象为什么)或一个错误?

重要提示:这似乎只是IE中的一个问题,而不是Firefox

对不起,我没有一个公开可访问的动态图像文件,以便其他人更容易看到这一点.如果你想测试它我建议使用从谷歌图像中随机挑选的大图像文件并清除你的缓存.

jquery jquery-1.3

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