如何获取给定位置的装配列表?我试图反思appdomain,那就是给我带来的一切.我只想要执行程序集目录中的内容.
我有一个项目是一个开源应用程序,用于特定类型的科学计算,使用c ++作为后端,C#作为前端.我在c ++部分没有做任何特定于Windows的事情,所以我希望在那里有一个相对较小的学习曲线.我有几个具体的问题,我将非常感谢有关此类过渡的任何建议.请记住,我对Linux一无所知,但我愿意学习.
我知道我不需要在技术上支持Linux,因为我的领域几乎每个人都使用Windows,或者可以轻松访问Windows机器,但我认为从技术角度来看这可能很有趣.
以下代码
#include "stdafx.h"
#include <string>
#include <set>
#include <boost/algorithm/string/trim.hpp>
int _tmain(int argc, _TCHAR* argv[])
{
std::set<std::string> test;
test.insert("test1 ");
test.insert("test2 ");
for(std::set<std::string>::iterator iter = test.begin(); iter != test.end(); ++iter)
{
boost::algorithm::trim(*iter);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
在VS2008中编译但在VS2010中因错误而失败
error C2663: 'std::basic_string<_Elem,_Traits,_Ax>::erase' : 3 overloads have no legal conversion for 'this' pointer \boost\include\boost\algorithm\string\trim.hpp
Run Code Online (Sandbox Code Playgroud)
这表明函数中的const匹配存在问题.如果我将set更改为vector,一切都很好.我也可以做一个
boost::algorithm::trim(const_cast<std::string&>(*iter));
Run Code Online (Sandbox Code Playgroud)
但我讨厌把它放在我的代码中,似乎我不应该这样,因为我没有在集合上使用const迭代器.如果这是预期的行为,为什么有人有任何想法?
我有一个VB6应用程序,处理非常非常长的时间.直接杀死它是不可行的,所以我想在VB6应用程序中设置某种标志.如果在我的C#应用程序中我决定将其关闭,我想切换此标志以让VB6应用程序知道已请求关闭.现在,我还需要一些命名的东西,因为将有几个VB6应用程序作为activex exes旋转.有谁知道如何实现这样的东西?工作流程如下
C#app - 在单独的线程中旋转多个VB6 activex.exes,用某些东西初始化应用程序(以下称为标志)我可以在C#中更改,并调用DoStuff命令,这需要很长时间才能返回.
VB6 - 获取带有标志的initialize命令.DoStuff被调用.在DoStuff循环中,它检查标志是否仍然设置.
C# - 通过将标志设置为另一个状态来终止项目
有任何想法吗?
我有一个正则表达式来查找nth字符串中出现的字符,这里是代码:
public static int NthIndexOf(this string target, string value, int n)
{
Match m = Regex.Match(target, "((" + value + ").*?){" + n + "}");
if (m.Success)
{
return m.Groups[2].Captures[n - 1].Index;
}
else
{
return -1;
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我在这个字符串中有1594个条目,有1593个分号.如果我写:
tempstring.NthIndexOf(";", 1593)
Run Code Online (Sandbox Code Playgroud)
答案立即正确回复.如果我给它任何超过1594的东西它会挂起.有谁知道如何解决这一问题?
string holder = "test;test2;test3";
string test = "";
for (int i = 0; i < 600; i++)
{
test += holder;
}
int index = test.NthIndexOf(";", 2000);
Run Code Online (Sandbox Code Playgroud)
这需要很长时间.将600更改为6,速度非常快.使2000至1700,它也非常快.
为什么我的正则表达式如此之慢?
我有一个非常大的文件需要解析,所以一次将它读入内存是不理想的.文件的结构方式,如果我可以从eof开始直到开头,那将会容易得多.有没有人有这样做的好方法?我正在使用Visual Studio 2008和C++.谢谢