我需要它来重写url,以知道我正在处理哪个友好的url。对于用户代理和其他东西。
编辑:
public class Gwan
{
[MethodImplAttribute(MethodImplOptions.InternalCall)]
extern public static long getEnv(string arg, int name);
}
Gwan.xbufCat(Gwan.getReply(args[0]), Gwan.getEnv(args[0], 3).ToString());
未处理的异常:System.MissingMethodException:找不到请求的方法。在(包装管理为本机)Gwan:getEnv(字符串,int)
我做错了什么?
我想你需要放一些类似的东西:
mono_add_internal_call ("Gwan::getEnv", get_env);
/cs文件夹中的Dll,其中gwan_api也未加载
与Java类似,G-WAN为G-WAN C API创建了一些包装器。在这两种情况下(Java和C#),都可以在gwan/libraries/cs
目录下找到这些包装器。
目前,C#包装器是:
// gwan_api.cs: exported G-WAN API calls for .NET C# servlets
using System;
using System.Runtime.CompilerServices;
public class Gwan
{
[MethodImplAttribute(MethodImplOptions.InternalCall)]
extern public static long getReply(string env);
[MethodImplAttribute(MethodImplOptions.InternalCall)]
extern public static void xbufCat(long reply, string mono_reply);
[MethodImplAttribute(MethodImplOptions.InternalCall)]
extern public static long cycles64();
[MethodImplAttribute(MethodImplOptions.InternalCall)]
extern public static long getNs ();
[MethodImplAttribute(MethodImplOptions.InternalCall)]
extern public static long getUs ();
[MethodImplAttribute(MethodImplOptions.InternalCall)]
extern public static long getMs ();
[MethodImplAttribute(MethodImplOptions.InternalCall)]
extern public static void logErr (long env, String msg);
[MethodImplAttribute(MethodImplOptions.InternalCall)]
extern public static void report (long reply, int html_format);
}
但是,您可以通过添加更多包装器来自由扩展此文件,无论是用于G-WAN C API,还是用于由G-WAN脚本加载的第三方C库。
希望这能有所帮助。
编辑
您必须为您想要从C#脚本支持的任何新的G-WAN API(或外部函数)实现C#包装器。
上面列出的include文件只是一个列表(而不是实现)。
请参阅Mono文档了解更多详细信息,如果您想赞助您需要的功能,请致电G-WAN。
我认为你必须在他们的网站上查找支持信息,或者尝试输出标题的代码,尝试将它们输出到messagebox.show(headersvariable)中;从开始
http://gwan.com/developers#tab3
REQUEST_LEN, // int REQUEST_LEN // strlen(REQUEST); with headers
HTTP_HEADERS, // struct *http_t; // see struct http_t above
HEAD_XBUF, // xbuf_t*HEAD_XBUF; // response HTTP headers(), if any