小编Ben*_*n L的帖子

什么是C#相当于朋友?

可能重复:
为什么C#不提供C++风格的'friend'关键字?

我希望类的私有成员变量可以被Tester类访问,而不会将它们暴露给其他类.

在C++中,我只是将Tester类声明为朋友,如何在C#中执行此操作?有人能举个例子吗?

c#

175
推荐指数
5
解决办法
19万
查看次数

Linux:计算给定文件夹和内容的单个哈希值?

当然必须有办法轻松做到这一点!

我已经尝试了Linux等命令行应用程序sha1sum,md5sum但它们似乎只能计算单个文件的哈希值并输出一个哈希值列表,每个文件一个.

我需要为文件夹的整个内容(而不仅仅是文件名)生成单个哈希.

我想做点什么

sha1sum /folder/of/stuff > singlehashvalue
Run Code Online (Sandbox Code Playgroud)

编辑:澄清一下,我的文件位于目录树的多个级别,它们并非都位于同一个根文件夹中.

linux bash hash

75
推荐指数
7
解决办法
4万
查看次数

Linux:环境变量存储在哪里?

如果我输入终端,

export DISPLAY=:0.0
Run Code Online (Sandbox Code Playgroud)

...存储该环境变量的shell在哪里?

我正在使用Ubuntu 8.10.我查看了文件〜/ .profile和/ etc/profile,找不到DISPLAY的痕迹.

linux environment-variables

66
推荐指数
4
解决办法
14万
查看次数

如何在C++中加载共享对象?

我有一个共享对象(因此 - 相当于Windows dll的Linux),我想导入并使用我的测试代码.

我确定这不是那么简单;)但这是我想做的事情..

#include "headerforClassFromBlah.h"

int main()
{
    load( "blah.so" );

    ClassFromBlah a;
    a.DoSomething();
}
Run Code Online (Sandbox Code Playgroud)

我认为这是一个非常基本的问题,但是在搜索网页时我找不到任何跳出来的东西.

c++ load shared-objects

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

如何使用stdext :: hash_map,其中键是自定义对象?

使用STL C++ hash_map ...

class MyKeyObject
{
    std::string str1;
    std::string str2;

    bool operator==(...) { this.str1 == that.str1 ... }
};

class MyData
{
    std::string data1;
    int data2;
    std::string etcetc;
};
Run Code Online (Sandbox Code Playgroud)

像这样...

MyKeyObject a = MyKeyObject(...);
MyData b = MyData(...);

stdext::hash_map <MyKeyObject, MyData> _myDataHashMap;
_myDataHashMap[ a ] = b;
Run Code Online (Sandbox Code Playgroud)

我得到了大量的错误.这是前三个......

错误1错误C2784:'bool std :: operator <(const std :: _ Tree <_Traits>&,const std :: _ Tree <_Traits>&)':无法推断'const std :: _ Tree <_Traits>的模板参数&'from'const MyKeyObject'c:\ program files\microsoft visual studio 8\vc\include\functional 143

错误2错误C2784:'bool std :: operator …

c++ stl hashmap

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

使用 Python 在 Linux 中检测按键组合?

我正在尝试捕获按键操作,以便在按下给定组合时触发事件。

我四处寻找有关如何开始的提示,我能找到的最简单的代码片段是在 Python 中 - 我从这里获取了下面的代码。但是,当我从终端运行它并按下一些键时,在“按一个键...”语句之后没有任何反应。

我傻吗?任何人都可以解释为什么什么也没有发生,或者提出一种在 Linux 上实现这一目标的更好方法(考虑任何语言!)?

import Tkinter as tk

def key(event):
    if event.keysym == 'Escape':
        root.destroy()
    print event.char

root = tk.Tk()
print "Press a key (Escape key to exit):"
root.bind_all('<Key>', key)
# don't show the tk window
root.withdraw()
root.mainloop()
Run Code Online (Sandbox Code Playgroud)

python linux keylogger

5
推荐指数
1
解决办法
7215
查看次数

使用.NET时验证多行文本输入

我有一个HtmlTextArea,我想限制用户可以输入的字符数为500.

目前我使用了RegularExpressionValidator ......

RegularExpressiondValidator val = new RegularExpressiondValidator ();
val.ValidationExpression = "^.{0,500}$";
val.ControlToValidate = id;
val.ErrorMessage = "blah";
Run Code Online (Sandbox Code Playgroud)

...当文本输入单行时,这很好,但只要文本包含新行字符(即多行),它就会立即失败验证.

我意识到有不同的正则表达式引擎,我需要用.NET测试一个(有人能指出我在网上的好方向吗?)但我尝试过其他一些东西,包括前置"(?m) "到我的表达式字符串,并用\ A和\ Z替换^和$,但到目前为止没有运气.

另一个相关的问题是,我可以避免使用正则表达式并将此验证器链接到我自己的验证函数吗?

c# regex asp.net validation

5
推荐指数
2
解决办法
2959
查看次数

如何提取OLE容器的内容?

我需要打开一个MS Word文件(.doc)并提取其组成文件('[1] CompObj','WordDocument'等).像7-zip这样的东西可以手动执行,但我需要以编程方式执行此操作.

我已经收集到Word文档是一个OLE容器(因此可以使用7-zip来查看其内容)但我无法弄清楚如何(使用C++):

  1. 打开OLE容器
  2. 提取每个组成文件并将其保存到磁盘

我已经找到了几个OLE自动化的例子(例如这里),但我想要做的似乎不太常见,我没有找到具体的例子.

如果有人知道API(?!)和使用OLE的教程,我将不胜感激.同上任何代码示例.

c++ containers ole ms-word

5
推荐指数
1
解决办法
4602
查看次数

C++:如何修改文件'创建'的时间戳?

我需要修改文件的"已创建"(如果存在),"已修改"和"已访问"时间戳.理想情况下,这将是一个独立于平台的解决方案.

我查看了boost库,但我看不到任何相关内容.我发现它相关的东西最近是适用于Windows.

有人可以帮忙吗?谢谢.

c++ boost boost-filesystem

5
推荐指数
1
解决办法
6093
查看次数

如果使用自定义DataSource,如何对ASP.NET GridView中的列进行排序?

当我使用自定义SqlDataSource时,我无法使用GridView使用户能够对数据列进行排序.

我有一个GridView,其中HTML中引用它的代码是最小的:

<asp:GridView id="grid" runat="server" AutoGenerateColumns="False" AllowSorting="True">
</asp:GridView>
Run Code Online (Sandbox Code Playgroud)

在代码隐藏中,我附加了一个动态创建的SqlDataSource(它包含的列并不总是相同,因此用于创建它的SQL是在运行时构造的).例如:

我设置了专栏......

BoundField column = new BoundField();
column.DataField = columnName;
column.HeaderText = "Heading";
column.SortExpression = columnName;

grid.Columns.Add(column);
Run Code Online (Sandbox Code Playgroud)

数据源......

SqlDataSource dataSource = new SqlDataSource(
    "System.Data.SqlClient",
    connectionString, 
    generatedSelectCommand);
Run Code Online (Sandbox Code Playgroud)

那么gridview ......

grid.DataSource = dataSource;
grid.DataKeyNames = mylistOfKeys;
grid.DataBind();
Run Code Online (Sandbox Code Playgroud)

当我希望它对列数据进行排序时,当用户点击列标题时,没有任何反应.任何想法,我缺少什么?

如果有一个更好的方式这样做也会有所帮助,因为这看起来很混乱!

c# asp.net gridview sqldatasource

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

Sqlite + Java:表没有更新

我正在使用SQLite的Java包装器,称为SQLiteJDBC - 这可能会对任何答案产生影响......

我有一个表格,我已经在GUI中显示,在该UI中,我有一个按钮,用于该表的单个行的字段.当我保存更改时,我这样做......

Statement stmt = connection.createStatement();
stmt.execute("update 'tableName' set 'fieldName'=1 where userid=1");

int updateCount = stmt.getUpdateCount();
Run Code Online (Sandbox Code Playgroud)

我的连接有效,我没有抛出异常,getUpdateCount()返回'1'表示已经更新了一行.但是我的表格没有更新.我花了最后几个小时试图弄清楚发生了什么,但我没有运气.救命!!

UPDATE

问题似乎是它没有做出我所做的改变.在应用程序运行时,我的更改是可见的,但只要我关闭应用程序并重新打开它或直接检查数据库,我的更改就会丢失,我们又回到原点.这是怎么回事??!

自动提交设置为true,如果我将其设置为false并尝试提交,则会抛出异常.

java sqlite

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

Sqlite:如何将变量插入准备好的语句中的字符串中

我正在使用 Java 包装器来访问 Sqlite,但我认为这是一个一般的 Sqlite 问题。

String stmt = "SELECT foo FROM bah WHERE foo='%/?/%';
PreparedStatement a = myConn.prepareStatement(stmt);

a.setString(1, "hello");
a.executeQuery();
Run Code Online (Sandbox Code Playgroud)

...抛出异常 - 它不喜欢 ? 在引号内。如果我这样做一切都很好

...WHERE foo=?
Run Code Online (Sandbox Code Playgroud)

但这不是我想要的声明。

如何将变量插入到这样的准备好的语句中?如果您忘记了我正在使用 Sqlite,那么如何使用其他数据库技术来完成此操作?

sql sqlite prepared-statement

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