小编Kir*_*ril的帖子

.NET的.NET混淆:我如何保护我的代码?

我正在与一家小公司探讨合作关系.该公司正在寻找一种可以提高利润的算法,我有一些原型软件可以帮助他们.我的软件的核心是非常机密的,如果公司掌握它,那么他们肯定不需要我.我肯定会和他们签订合同,我会得到法律保护,但我仍然希望尽可能多地保护他们和我的"商业秘密".

我可能必须与他们的开发人员密切合作,以自动化我的算法并将其集成到他们的系统中,但我想在DLL中提供核心功能,这样我就可以保护我的"商业秘密",但仍然有能力与他们合作开发人员.鉴于我的情况,混淆是否值得?还有其他合理的选择吗?

.net c# dll obfuscation

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

在 C# 中,什么类似于 C++ 中的 CHAR_BIT?快速腹肌

C# 是否有类似于 C++ 的CHAR_BIT 的东西?

更新:
基本上,我正在尝试计算无分支的abs,这里是C++版本:

// Compute the integer absolute value (abs) without branching

int v;           // we want to find the absolute value of v
unsigned int r;  // the result goes here 
int const mask = v >> sizeof(int) * CHAR_BIT - 1;

r = (v ^ mask) - mask;
Run Code Online (Sandbox Code Playgroud)

这是我的 C# 版本:

private int Abs(int value)
{
    int mask = value >> sizeof(int) * 8 - 1;
    return ((value ^ mask) - mask); …
Run Code Online (Sandbox Code Playgroud)

c# c++

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

C++将shared_ptr提升为hash_map键

我正在创建一个神经网络,并希望使用hash_map来保持每个神经元的输出神经元的权重参考:

class Neuron; //forward declaration was there (sorry I forgot to show it earlier)
typedef double WEIGHT;
typedef stdext::hash_map<boost::shared_ptr<Neuron>,WEIGHT> NeuronWeightMap;
class Neuron
{
private:
    NeuronWeightMap m_outputs;
    //...
public:

    Neuron();
    ~Neuron();
    //...
    WEIGHT GetWeight(const boost::shared_ptr<Neuron>& neuron) const
    {
        NeuronWeightMap::const_iterator itr = m_outputs.find(neuron);
        if( itr != m_outputs.end() )
        {
            return itr->second;
        }
        return 0.0f;
    }
};
Run Code Online (Sandbox Code Playgroud)

我意识到我不能使用boost :: shared_ptr作为stdext :: hash_map的键,那么另一个建议是什么呢?是否有任何解决方法或是使用不同密钥或切换到std :: map的唯一选择?谢谢!

这是错误:

1>c:\program files (x86)\microsoft visual studio 8\vc\include\xhash(61) : error C2440: 'type cast' : cannot convert from 'const boost::shared_ptr<T>' to …
Run Code Online (Sandbox Code Playgroud)

c++ boost hashmap shared-ptr neural-network

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

C#性能分析 - 如何计算CPU周期?

这是进行性能分析的有效方法吗?我想获得纳秒精度并确定类型转换的性能:

class PerformanceTest
{
    static double last = 0.0;
    static List<object> numericGenericData = new List<object>();
    static List<double> numericTypedData = new List<double>();

    static void Main(string[] args)
    {
        double totalWithCasting = 0.0;
        double totalWithoutCasting = 0.0;
        for (double d = 0.0; d < 1000000.0; ++d)
        {
            numericGenericData.Add(d);
            numericTypedData.Add(d);
        }
        Stopwatch stopwatch = new Stopwatch();
        for (int i = 0; i < 10; ++i)
        {

            stopwatch.Start();
            testWithTypecasting();
            stopwatch.Stop();
            totalWithCasting += stopwatch.ElapsedTicks;

            stopwatch.Start();
            testWithoutTypeCasting();
            stopwatch.Stop();
            totalWithoutCasting += stopwatch.ElapsedTicks;
        }

        Console.WriteLine("Avg with typecasting = {0}", …
Run Code Online (Sandbox Code Playgroud)

c# performance casting

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

如何将ASP.NET MVC应用程序发布到免费主机

我正在构建一个ASP.NET MVC应用程序,我正在尝试将它部署在一个支持ASP.NET的免费主机(0000free)上.我尝试了一些东西,但没有一个工作(即我浏览到我的网站时只看到目录结构):

  1. 发布到本地文件夹,然后通过ftp将发布的文件复制到我的主机(在public_html目录中).
  2. 通过ftp发布到根文件夹:ftp.mywebsite.com
  3. 通过ftp发布到public_html文件夹:ftp.mywebsite.com/public_html

通常我只是将html文件放在public_html文件夹中,但我感觉MVC应用程序的部署过程略有不同.我是否必须修改Web.config或其他文件管理器?如何通常部署MVC应用程序(在免费主机上)?

更新:
我了解到主机使用Mono并支持.NET 4.0,但我仍然无法部署.

我有Visual Studio 2010,我使用它的发布功能(即右键单击项目名称并单击发布),我尝试了几件事:

  1. 发布方法:FTP到根文件夹.
  2. 发布方法:FTP到publich_html文件夹.
  3. 发布方法:文件系统到根文件夹.
  4. 发布方法:文件系统到publich_html文件夹.
  5. 发布方法:文件系统到我的计算机上的本地目录,然后FTP到root,并尝试了public_html文件夹.
  6. 我进入cPanel(控制面板)试图看看是否必须为我的网站添加/启用ASP.NET,但我没有看到任何内容.
  7. 我无法浏览到的Index.aspx我也不能重定向到它的index.html(如从其他职位建议主论坛),现在我有一个链接从index.html的到的Index.aspx,但它不工作要么(见http://www.mydevarmy.com)
  8. 我也尝试将Index.aspx重命名为Default.aspx,但这也不起作用.

主机论坛的搜索实用程序有点弱,所以我使用谷歌搜索他们的论坛:http://www.google.com/search? q =publish + asp.net + site%3A0000free.com%2Fforum% 2F&即= UTF-8&OE = UTF-8&A Q = T&RLS = org.mozilla:EN-US:官方与客户端= firefox的-A

我一直在阅读Pro ASP.NET MVC框架,他们有一章关于发布,但它没有提供有关发布位置的任何具体信息,这就是他们所说的(这在我的案例中并不是很有帮助) ):

我应该把我的申请放在哪里?
您可以将应用程序部署到服务器上的任何文件夹.当IIS首次安装时,它会自动为c:\ Inetpub\wwwroot \创建一个名为Default Web Site的网站的文件夹,但您不应该有任何义务将应用程序文件放在那里.将应用程序托管在与操作系统不同的物理驱动器上是很常见的(例如,在e:\ websites\example.com中).这完全取决于您,并且可能会受到诸如您计划如何备份服务器等问题的影响.

这是我在尝试查看Index.aspx页面时遇到的错误:

Unrecognized attribute 'targetFramework'. (/home/devarmy/public_html/Web.config line 1)

Description: HTTP 500. Error processing request.

Stack Trace:

System.Configuration.ConfigurationErrorsException: Unrecognized attribute 'targetFramework'. (/home/devarmy/public_html/Web.config …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc publish publishing

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

尝试在数据库表中插入新条目时出现LINQ to SQL异常

我试图通过LINK to SQL在我的数据库中插入一个用户,我得到一个例外:

无法将值NULL插入列'UserID',表'mydatabase.developer.Users'; 列不允许空值.INSERT失败.该语句已终止.

我已将UserID标记为Users表中的主键,并且当我尝试在表中插入新用户时,我预计SQL Server将自动生成PK.

我几乎复制并粘贴了Pro ASP.NET MVC框架第4章"设置LINQ to SQL"中的示例.一切都井然有序......我的数据库有一个Users表,其中包含UserID(PK)列和Name列(两者都是非可空的),下面是与数据库表对应的类:

public class User
{
    [DisplayName("User ID")]
    [Column(IsPrimaryKey=true, IsDbGenerated=true, AutoSync=AutoSync.OnInsert)]
    internal int UserID { get; set; }

    [DisplayName("Name")]
    [Column]
    public string Name{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我还有一个存储库类,允许我修改数据库:

public class UsersRepository : IUsersRepository
{
    private DataContext database;
    private Table<User> usersTable;

    public UsersRepository(string connectionString)
    {
        database = new DataContext(connectionString);
        usersTable = database.GetTable<User>();
    }

    public void AddUser(User user)
    {
        usersTable.InsertOnSubmit(user);
        try
        {
            database.SubmitChanges();
        }
        catch (Exception e)
        {
            var msg …
Run Code Online (Sandbox Code Playgroud)

c# sql database asp.net-mvc linq-to-sql

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

寻找函数(或宏)来返回boost :: scoped_lock

我正在寻找代码缩短的想法.我正在使用boost::scoped_lock锁定boost::mutex但我希望缩短我正在编写的代码量.

目前我mutex在我的班级中定义了一个名为的成员字段_sync.当我想要锁定时,我必须写:

scoped_lock<mutex> lock(_sync);
Run Code Online (Sandbox Code Playgroud)

棘手的部分是这是一个范围锁,所以我假设如果我写一个静态函数来返回scoped_lock,那么它一旦离开静态函数的函数范围就会解锁:

static scoped_lock<mutex> lock(mutex& sync)
{
    return scoped_lock<mutex>(sync);
}
Run Code Online (Sandbox Code Playgroud)

这种方法可以很容易地输入:

public void Object::modify()
{
    lock(_sync); // <-- nice and short! ;)

    // do something to modify the object
    //..
    // the mutex is unlocked when we leave the scope of modify
}
Run Code Online (Sandbox Code Playgroud)

我的假设是否正确?scoped_lock当我的静态函数返回时会立即解锁吗?

c++ boost function shortcut scoped-lock

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

用Java中的另一个线程触发线程的方法

假设我有一个class MyThread,Runnable用一个方法实现dosomething():

class MyThread implements Runnable{
    Object dosomething(Parameter p){ ... }    
    run(){...};
}
Run Code Online (Sandbox Code Playgroud)

如果我做:

main(){
    MyThread my = new MyThread().run();    
    Object o = my.dosomething(p);
}
Run Code Online (Sandbox Code Playgroud)

将在线程dosomethingmyThreadmain线程中执行?
如何dosomething从主线程开始执行myThread并检索返回的对象?

java multithreading

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

如何为_beginthreadex提供64位线程标识符

我试图端口一些代码为64位,但它似乎该线程地址在标识符_beginthreadexunsigned int其为32位,我无法通过/接收一个64位的地址从函数标识符:

uintptr_t _beginthreadex( // NATIVE CODE
   void *security,
   unsigned stack_size,
   unsigned ( __stdcall *start_address )( void * ),
   void *arglist,
   unsigned initflag,
   unsigned *thrdaddr // <-- 32-bit address
);
Run Code Online (Sandbox Code Playgroud)

我检查了MSDN文档,但我没有看到该函数的64位版本.我是否包括错误的标头,每处理器标志或是否有其他方法来创建具有64位地址标识符的线程?

更新

该文档声明该thrdaddr参数是32位:

Thrdaddr

Points to a 32-bit variable that receives the thread identifier. Might be NULL, in which case it is not used.
Run Code Online (Sandbox Code Playgroud)

c++ concurrency 64-bit multithreading crt

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

为什么QThread ::完成信号没有发出?

我创建了自己的TestService,它运行在一个单独的QThread,但MainLoop终止时,QThread::finished信号不会被发出.我看到了一个类似的问题,但问题略有不同,因为OP超载QThread而我只是将我的类移到线程上.

请注意,我不超载QThread课,我只重载QObject基于这个例子:http://mayaposch.wordpress.com/2011/11/01/how-to-really-truly-use-qthreads-the-full-explanation /

这是我的TestService班级:

#include <QObject>
#include <QThread>
#include <QMutex>
#include <QWaitCondition>
#include <iostream>

using namespace std;
class TestService: public QObject
{
    Q_OBJECT;
private:
    volatile int _count;
    QWaitCondition _monitor;
    QMutex _mutex;
    QThread* _thread;

public:
    TestService(int numSeconds)
    {
        _count = numSeconds;
        _thread = NULL;
        cout << "TestService()" << endl;
    }

    virtual ~TestService()
    {
        cout << "~TestService()" << endl;
    }

    void …
Run Code Online (Sandbox Code Playgroud)

c++ concurrency qt multithreading qthread

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