小编Ada*_*ile的帖子

64位.NET性能调优

我知道这.NETJIT编译你只是在应用程序运行之前运行的架构,但确实为64位架构的JIT编译器优化呢?

在编写将运行的应用程序时,是否有任何需要完成或考虑的事项64bit system?(即使用Int64会提高性能吗?JIT编译器会自动使Int64在32位系统上运行吗?)

.net optimization performance 64-bit jit

10
推荐指数
3
解决办法
3769
查看次数

未在Visual Studio 2010中加载的引用DLL

我正在开发VS2010中的C#4.0项目,需要使用一些包含在VS2008上用C#3.5创建的控件的旧DLL.当我第一次将DLL添加到引用时,我能够通过intellisense看到命名空间并创建其中一个控件的实例,但是当我去构建时,它会给我以下错误:

The type or namespace name 'BCA' could not be found (are you missing a using directive or an assembly reference?)
Run Code Online (Sandbox Code Playgroud)

已经有一个针对该命名空间的using指令,现在以红色加下划线,表明VS无法找到它.现在,intellisense根本不会接受该名称空间.

我甚至尝试将控件添加到工具箱(有效),但是当我将它们拖到GUI时,它说它找不到DLL引用,即使它显然知道它在哪里.

我甚至尝试将目标框架更改为3.5,但仍然具有相同的结果.

有关为什么会发生这种情况的任何想法?

编辑 - 我注意到在VS输出的​​csc.exe参数中,它没有我正在尝试使用的DLL的任何/引用条目.当我在VS2008中创建相同的基本项目时,存在这些条目.此外,我可以成功引用VS2010中的DLL项目中的DLL ...它似乎只是WinForms项目不起作用.

c# dll visual-studio-2010 c#-4.0

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

C++ DLL def文件中的重载函数

我正在编写一个C/C++ DLL,并希望在使用像这样的.def文件之前导出我已经完成的某些功能

LIBRARY "MyLib"
EXPORTS
  Foo
  Bar
Run Code Online (Sandbox Code Playgroud)

使用定义为此的代码,例如:

int Foo(int a);
void Bar(int foo);
Run Code Online (Sandbox Code Playgroud)

但是,如果我想声明一个Foo()的重载方法,如下所示:

int Foo(int a, int b);
Run Code Online (Sandbox Code Playgroud)

由于def文件只有函数名而不是完整的原型,我无法看到它如何处理重载函数.您是否只使用一个条目,然后在将正确的原型函数指针传递给LoadLibrary()时指定您想要的重载版本?

编辑:要清楚,这是在使用Visual Studio 2005的Windows上

编辑:将非def(__ declspec)方法标记为答案...我知道这实际上并没有像我想的那样使用def文件解决问题,但似乎很可能没有使用def文件的(官方)解决方案.但是,如果有人知道我们没有重载函数和def文件,我们会将问题保持打开状态.

c c++ dll

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

Visual Studio解决方案中的公共文件

很多时候我见过Visual Studio解决方案,它有多个共享源文件的项目.这些常见的源文件通常位于公共目录中,而在解决方案资源管理器中,它们的图标会在左下方显示一个链接箭头.

但是,每次我尝试将源文件添加到该项目主目录之外的项目时,它只会自动将其复制到目录中,以便我不再拥有共享副本.

我发现我可以通过在文本编辑器中手动打开项目文件并修改类似"../../../Common/Source.cs"的路径来解决这个问题,但这更像是一个黑客然后我想.

是否有一个设置或我可以更改的内容,这将允许我在IDE中执行此操作?

projects-and-solutions visual-studio

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

将内存文本加载到WebBrowser控件中

在.Net WebBrowser控件上,我可以看到加载页面的唯一方法是设置URL属性.但我想给它一些我已经在内存中的HTML代码,而不是先将它写入文件.有没有办法做到这一点?或者有任何控件可以做到这一点?

.net controls

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

单声道兼容网络/套接字库

那里有没有Mono(C#)兼容的网络/套接字库吗?

最好是:

  • 多螺纹
  • 事件驱动
  • 能够连接多个
  • 处理客户端和服务器件
  • 运行Mono和MS .NET运行时
  • 非常简单
  • 免费(可在商业软件中使用)

如果它是:它真的很棒:

  • .NET Compact Framework(Windows Mobile)兼容
  • MonoTouch(iPhone)兼容

编辑:

为了澄清更多,我的"高于TCP/IP的一级"评论意味着我想要的东西基本上是一个自包含的服务器/客户端.我不想处理编写线程代码,处理每个连接等等.例如,我希望代码看起来像这样:

Server s = new Server(8080);
s.NewConnection += new ConnectionEventHandler(NewConnection);
s.DataRecieved += new DataEventHandler(NewData);
s.Start();

void NewConnection(object sender, EventArgs e)
{
   s.Send((Connection)sender, "Hello World!"); //(Connection)sender is the connection instance so the server knows which to send the response to
}

void NewData(object sender, EventArgs e)
{
   s.Send((Connection)sender, e.Data); //Echo back
}
Run Code Online (Sandbox Code Playgroud)

不是最干净的代码,但我认为它提供了基本的想法.

c# sockets mono networking

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

从代码中禁用pyserial中的DTR

我正在尝试使用pyserial将数据发送到arduino.但是当我打开COM端口时,它将DTR设置为低电平并重置电路板.但是,我有我的arduino代码设置,因此我必须通过按住两个按钮1秒钟将其置于串行接收模式.如果可能的话,我宁愿不必在arduino的启动时进行串行输入.

显然你可以修改serialWin32.py文件,改变读取的行:

self._dtrState = win32.DTR_CONTROL_ENABLE
Run Code Online (Sandbox Code Playgroud)

至:

self._dtrState = win32.DTR_CONTROL_DISABLE
Run Code Online (Sandbox Code Playgroud)

但是,有没有办法直接在我的python脚本中禁用它?我还需要为所有系统执行此操作.我宁愿不强迫人们改变他们的基本串行配置只是为了使用这个脚本.

串口打开如下:

 com = serial.Serial(port, baud, timeout=1);
Run Code Online (Sandbox Code Playgroud)

更新:最后我找到了一个适合我的设置的解决方案.由于我不需要一直使用串行数据,只有当我将设备置于串行接收模式时,才发现了一种方法来禁用arduino本身的串行连接复位.

很多帖子都说你可以通过在5V和复位之间放置一个~100欧姆的电阻来禁用DTR复位.但我不希望这是永久性的事情.所以,我在PD5和复位之间放置了一个电阻器.然后,在软件中:

void setup() {
    //.......
    DDRD &= ~(_BV(PD5)); //Set PD5 as input initially
    PORTD |= (_BV(PD5)); //Set high
    //.......
}

inline void setResetDisable(bool state)
{
  if(state)
    DDRD |= (_BV(PD5)); //Set PD5 as output to put 5V on reset line
  else
    DDRD &= ~(_BV(PD5)); //set back to input mode
}
Run Code Online (Sandbox Code Playgroud)

所以现在,当我想要处于串行模式时,我调用setResetDisable(true),它在该100欧姆电阻和复位引脚上抛出5V,防止DTR将其拉低并重置芯片:)然后我只调用setResetDisable(false) )当我离开串行模式时,芯片可以正常编程.

python serial-port arduino pyserial

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

脚本结束时不要终止 python 子进程

我看到了很多与此相反的问题,我觉得很奇怪,因为我无法阻止我的子进程关闭,但有没有办法调用 subprocess.Popen 并确保它的进程在调用 python 脚本后保持运行退出?

我的代码如下:

dname = os.path.dirname(os.path.abspath(__file__))
script = '{}/visualizerUI.py'.format(dname)
self.proc = subprocess.Popen(['python', script, str(width), str(height), str(pixelSize)], stdout=subprocess.PIPE)
Run Code Online (Sandbox Code Playgroud)

这可以很好地打开进程,但是当我关闭脚本时(无论是因为它完成还是使用 Ctrl+C),它也会关闭 VisualizerUI.py 子进程,但我希望它保持打开状态。或者至少有这个选择。

我缺少什么?

python subprocess

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

来自Bookmarklet的Ajax调用

我正在尝试创建一个bookmarklet,在点击后,会从用户请求一些信息(在这种情况下是一个url和几个其他字段),然后将该数据发送到我服务器上的php页面,然后显示结果.

我想为此做一个Ajax调用,以便我实际上不会重定向到新页面,只是获取数据,但我想我会遇到Ajax的"同源策略"限制....是否有任何已知的方式基本上做同样的事情?

另外,传递参数的最佳方法是什么?我已经有一个机制来接收参数作为来自表单的帖子消息......有什么办法可以重用这个吗?

javascript ajax bookmarklet

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

如何在详细信息模式下隐藏.NET ListView控件中的垂直滚动条

我在详细信息模式下有一个ListView控件,只有一列.它位于一个仅用于键盘的表格上,主要是用于向上/向下箭头滚动和输入以进行选择.所以我真的不需要滚动条,只是想让它们看起来更干净.但是,当我将ListView.Scrollable属性设置为false时,我仍然可以上下移动所选项目,但只要它移动到当前不在视图中的项目,列表就不会移动以显示该项目.我已经尝试使用EnsureVisible以编程方式滚动列表,但在此模式下它什么都不做.

有没有办法手动移动列表上下滚动,但没有滚动条存在?

c# listview winforms

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