问题列表 - 第15037页

XML-RPC C#和Python RPC服务器

在我的服务器上,我使用Python的标准示例(使用额外的Hello World方法),在客户端,我使用C#中的XML-RPC.NET库.但每次我运行我的客户端时,我都会得到一个例外,即找不到该方法.任何想法如何解决.

谢谢!

蟒蛇:

from SimpleXMLRPCServer import SimpleXMLRPCServer
from SimpleXMLRPCServer import SimpleXMLRPCRequestHandler

# Restrict to a particular path.
class RequestHandler(SimpleXMLRPCRequestHandler):
    rpc_paths = ('/RPC2',)

# Create server
server = SimpleXMLRPCServer(("", 8000),
                            requestHandler=RequestHandler)
server.register_introspection_functions()

# Register pow() function; this will use the value of
# pow.__name__ as the name, which is just 'pow'.
server.register_function(pow)

# Register a function under a different name
def adder_function(x,y):
    return x + y
server.register_function(adder_function, 'add')

def HelloWorld():
        return "Hello Henrik"

server.register_function(HelloWorld,'HelloWorld')

# Register an instance; all the …
Run Code Online (Sandbox Code Playgroud)

c# python xml-rpc

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

带有 FILE_FLAG_DELETE_ON_CLOSE 标志的 CreateFile

在我描述我的问题之前,这里是我正在编写的程序 (IHExplorer.exe) 的描述:

这是一个 C++ 应用程序。

IHExplorer 应用程序看起来尽可能像 Windows 资源管理器窗口。有一个例外,那就是从这个资源管理器窗口中启动文件将首先将它们解密到用户的临时文件夹,然后启动与文件扩展名关联的应用程序并在关闭时删除文件。

我遇到的问题是文件关闭时自动删除。这是一个场景:

  1. 用户在 IHExplorer 中双击加密的 .txt 文件。
  2. IHExplorer 解密内存中的 .txt 文件,然后使用 ::CreateFile 将其写入 %TEMP%,后者返回文件的句柄(IHExplorer 必须至少保持此句柄打开,直到 .txt 文件被 shell 执行)。

  3. IHExplorer Shell 从它的临时位置执行 .txt 文件(通过调用 ::ShellExecute)。

  4. 现在 IHExplorer 和记事本都有打开文件的句柄。
  5. 当 IHExplorer 和记事本都关闭文件句柄时,必须自动删除该文件,即使 IHExplorer 先关闭。

好的。这是一个基本的用户案例,描述了我想要发生的事情。我遇到的问题是当我 ::ShellExecute() 时,记事本说“该进程无法访问该文件,因为它正被另一个进程使用。” (这将是 IHExplorer)。我需要解决这个问题并让记事本打开它,即使我仍然在 IHExplorer 中打开了句柄。

这是我对 ::CreateFile 的调用的样子:

DWORD dwShareMode = FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE;
DWORD dwFlagsAndAttributes = FILE_ATTRIBUTE_TEMPORARY | FILE_FLAG_DELETE_ON_CLOSE;
HANDLE hFile = ::CreateFile(strTempFile.c_str(), GENERIC_WRITE, dwShareMode, &sa, CREATE_NEW, dwFlagsAndAttributes, NULL);
Run Code Online (Sandbox Code Playgroud)

请注意,我使用了 FILE_SHARE_DELETE 以便其他进程(例如记事本)可以使用删除访问权限打开文件。

请注意,我使用了 …

c++ filesystems temporary-files createfile

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

静态打字如何限制宏?

我正在阅读保罗格雷厄姆的"百年语言"一文.

http://www.paulgraham.com/hundred.html

在那里,他声称静态输入"排除[s]真正的宏".

例如,类型似乎是取之不尽的研究论文来源,尽管静态类型似乎排除了真正的宏 - 否则,在我看来,没有语言值得使用.

这是怎么回事?论文在哪里?我尝试在Google上搜索但没有成功.

macros programming-languages static-typing

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

"as"和可空类型的性能惊喜

我刚刚修改了深度C#的第4章,它处理了可空类型,我正在添加一个关于使用"as"运算符的部分,它允许你编写:

object o = ...;
int? x = o as int?;
if (x.HasValue)
{
    ... // Use x.Value in here
}
Run Code Online (Sandbox Code Playgroud)

我认为这非常简洁,它可以提高性能而不是C#1等效,使用"is"后跟一个演员 - 毕竟,这样我们只需要请求动态类型检查一次,然后进行简单的值检查.

然而,情况似乎并非如此.我在下面包含了一个示例测试应用程序,它基本上对对象数组中的所有整数求和 - 但该数组包含许多空引用和字符串引用以及盒装整数.该基准测试您必须在C#1中使用的代码,使用"as"运算符的代码,以及用于踢LINQ解决方案的代码.令我惊讶的是,在这种情况下,C#1代码的速度提高了20倍 - 即使是LINQ代码(考虑到所涉及的迭代器,我预计它会更慢)也胜过"as"代码.

可以isinst为空的类型的.NET实现真的很慢吗?是unbox.any导致问题的附加因素吗?还有另一种解释吗?目前,我觉得我必须在性能敏感的情况下包含警告,禁止使用它...

结果:

演员:10000000:121
As:10000000:2211
LINQ:10000000:2143

码:

using System;
using System.Diagnostics;
using System.Linq;

class Test
{
    const int Size = 30000000;

    static void Main()
    {
        object[] values = new object[Size];
        for (int i = 0; i < Size - 2; i += 3)
        {
            values[i] = null;
            values[i+1] …
Run Code Online (Sandbox Code Playgroud)

c# clr performance unboxing nullable

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

NSToolbarItem图像缩放

为什么会这样:

正如您所看到的,在"允许的工具栏项"中,图像看起来很适合"PHP"工具栏项,当它实际位于工具栏中时,它会奇怪地缩放.

谢谢

cocoa scaling objective-c nstoolbar nstoolbaritem

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

对Python进行C扩展,需要另一个扩展

我有几个Python函数,我用它来使Pygame的游戏开发更容易.我把它们放在我的Python路径中名为helper.py的文件中,所以我可以从我制作的任何游戏中导入它们.我想,作为一个学习Python扩展的练习,将这个模块转换为C.我的第一个问题是我需要使用Pygame中的函数,我不确定这是否可行.Pygame安装了一些头文件,但它们似乎没有C函数的Python版本.也许我错过了什么.

我怎么解决这个问题?作为一种解决方法,该函数当前接受一个函数参数并调用它,但它不是理想的解决方案.

顺便说一句,使用Windows XP,Python 2.6和Pygame 1.9.1.

c python pygame

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

LINQ to XML:应用XPath

有人能告诉我为什么这个程序不会枚举任何项目?它与RDF名称空间有关吗?

using System;
using System.Xml.Linq;
using System.Xml.XPath;

class Program
{
    static void Main(string[] args)
    {
        var doc = XDocument.Load("http://seattle.craigslist.org/sof/index.rss");

        foreach (var item in doc.XPathSelectElements("//item"))
        {
            Console.WriteLine(item.Element("link").Value);
        }

        Console.Read();
    }
}
Run Code Online (Sandbox Code Playgroud)

c# xml linq xpath linq-to-xml

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

NSMutabledata.为什么保留计数比我预期的要高1?

我每天都在尝试使用牙线,进行锻炼,并确保在保留和释放之间保持平衡.

这让我感到困惑.我有一个伊娃:

NSMutabledata *_alignmentData 
Run Code Online (Sandbox Code Playgroud)

以及与之相关的综合属性:

// .h file
@property (nonatomic, retain) NSMutableData *alignmentData;

// .m file
@synthesize alignmentData=_alignmentData;
Run Code Online (Sandbox Code Playgroud)

我开始异步从服务器中提取数据:

self.connection = 
[[[NSURLConnection alloc] initWithRequest:theRequest delegate:self] autorelease];
Run Code Online (Sandbox Code Playgroud)

并在分配了一个数据缓冲区后立即在异步回调中使用:

// This prints 0. Cool.
NSLog(@"BEFORE [_alignmentData retainCount] = %d", [_alignmentData retainCount]);

// Create a place to receive the data that will arrive asynchronously:
self.alignmentData = [NSMutableData data];

// This prints 2. Shouldn't this be 1 ?!?
NSLog(@" AFTER [_alignmentData retainCount] = %d", [_alignmentData retainCount]);
Run Code Online (Sandbox Code Playgroud)

为了使在上面分配self.alignmentData之后触发的第一个异步回调中的问题复杂化,我再次检查保留计数:

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {

    // …
Run Code Online (Sandbox Code Playgroud)

iphone release objective-c retain nsdata

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

使用Gems和MacRuby

你如何在Snow Leopard上使用MacRuby .5应用程序中的宝石?我需要指定宝石路径吗?如果是这样,我该怎么做?

最好的方案是将gems打包到应用程序中,这样用户就不必在分发应用程序时安装它们.

ruby rubygems macruby

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

JavaScript中的循环缓冲区

有人已经在JavaScript中实现了循环缓冲区吗?没有指针你会怎么做?

javascript circular-buffer data-structures

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