经过多次尝试和错误我想通了。如果其他人有同样的问题,我会分享。我编写的这段代码根据产品 ID 从数据库中获取 sku 编号。然后,它通过 xml-rpc 根据 sku 向供应商请求库存水平,获取响应,然后更新数据库中产品 ID 的当前库存水平。
//Grab the stock level of the item from supplier server
$query = sprintf("SELECT prodcode FROM [|PREFIX|]products where productid='%d'",
$GLOBALS['ISC_CLASS_DB']->Quote($prodId));
$result = $GLOBALS['ISC_CLASS_DB']->Query($query);
$product_sku = mysql_fetch_row($result);
$product_sku2 = $product_sku[0];
$server_url = "http://m.com/fvg/webservices/index.php";
$request = xmlrpc_encode_request("catalog.getStockQuantity", array($product_sku2));
$context = stream_context_create(array('http' => array(
'method' => "POST",
'header' => "Content-Type: text/xml",
'content' => $request
)));
$file = file_get_contents($server_url, false, $context);
$response = xmlrpc_decode($file);
$query = sprintf("UPDATE [|PREFIX|]products SET prodcurrentinv='$response' where productid='%d'", $GLOBALS['ISC_CLASS_DB']->Quote($prodId));
$result = $GLOBALS['ISC_CLASS_DB']->Query($query);
假设您确实有权访问头文件或具有标识函数及其参数的文档 - 这是它的样子
假设函数如下
int Func1 (int i1, int i2);
无效 Func2(无效);
现在下面是示例代码
#include windows.h
#include stdio.h
// use either dumpbin or http://www.dependencywalker.com/ to confirm the functions
//Let us assume it has two functions with their prototypes known - Func1 & Func2
int Func1 (int i1, int i2);
void Func2(void);
typedef int (*FUNC1_PTR) (int, int);
typedef void (*FUNC2_PTR) (void);
const char NONAME_DLL[] = "some.dll";
int main(int argc, char *argv[]) {
FUNC1_PTR f1;
//FUNC2_PTR F2;
int i= 1, j = 2;
HMODULE hMod = LoadLibrary(NONAME_DLL);
if (!hMod) {
printf("LoadLibrary fails with error code %d \n", GetLastError());
return 1;
}
f1 = (FUNC1_PTR) GetProcAddress(hMod, "Func1");
if (f1) {
int ret = (*f1)(i, j);
}
FreeLibrary (hMod);
return 0;
}
如果您无权访问头文件或不知道函数签名 - 可能没有什么方法可以继续
- 运行一个使用此函数的程序,并在调用此函数时使用调试器中断并查看它的作用。
- 使用交互式反汇编程序(例如IDA Pro),它可以显示签名元素,例如向函数传递了多少参数。
- 反汇编函数以分析其序言和尾声。耗时且不是一项微不足道的任务,更重要的是因为不同的编译器、不同的调用约定、优化的代码加壳器等等。
- 我听人们说他们使用过 winedump - 你可以在这里查看 http://www. winehq.org/docs/winedump - 但我从未使用过它。 Nirsoft.net 的 DLL Export Viewer 或许是另一个工具。
- 这也是另一个工具 - Visual dumpbin 使用 UnDecorateSymbolName,该工具可在 http://code.entersources.com/f/Visual-Dumpbin-AC--Visual-GUI-for-Dumpbin_2_1671_0.aspx。 DLL 必须由 MS 编译器构建。检查此链接可能会给您更多线索,...
您至少可以在Windows下尝试NETLink
:
In[1]:= Needs["NETLink`"]
matlab = CreateCOMObject["matlab.application"]
Out[2]= «NETObject[COMInterface[MLApp.DIMLApp]]»
然后您可以调用Matlab函数:
In[4]:= matlab@Execute["version"]
Out[4]= "
ans =
7.9.0.529 (R2009b)
"
In[5]:= matlab@Execute["a=2"]
matlab@Execute["a*2"]
Out[5]= "
a =
2
"
Out[6]= "
ans =
4
"
HTH
如果您使用的是 JQuery...(此处安装说明: http://jquery.com/ )
$(document).ready(function(){
if( window == window.top) { $('form#myform').hide(); }
});
这只是隐藏了如果窗口不是最顶层的窗口,则表单的 ID 为“myform”。
经过很多努力我已经解决了这个问题。绑定 DataGridView 当数据源中有一些数据时,它可能是列表或数据表。
作为黑客,我创建了一个 1 像素高、8.5 英寸宽的白色图像并将其嵌入到我的报告中。这迫使报表宽度为 8.5 英寸,但没有解释如何让渲染引擎使报表自动展开。
使用 Perl 而不是 Python。该程序(SinFP)是用 Perl 编写的,您可以修改代码以满足您的需要。
你可以先从指定的url下载php脚本文档,然后给出http-client链接来下载本地存储的文件。或将文档内容放入输出流:
$cont = file_get_contents($_GET['url']);
header('Content-Type: application/octet-stream');
header("Content-Transfer-Encoding: binary ");
header('Accept-Ranges: bytes');
header('Content-disposition: attachment; filename=' . $new_file_name));
echo($cont);
有多种方法可以阻止方法对作为参数传递的对象进行更改:
- 制作对象的副本,然后传递该副本。复制对象的方法有很多种。复制构造函数和静态工厂方法可能比实现
clone()
更好。 - 为对象的类创建一个只读包装类,实例化它并传递它。只读包装器要么不提供更新方法,要么实现它们不执行任何操作,或者引发异常。
- 重构对象的 API,使其具有只读接口和读写接口,并将其作为前者的实例传递。 (当然,调用者可以尝试将其强制转换为后者...)
- 使用 Java 安全性来防止不需要的更新。 (这是昂贵且复杂的......)
当然,如果您试图“保护”的对象具有您想要防止更改的深层结构,那么您需要确保处理这个问题;例如,通过深度复制、通过返回组件对象的副本或返回它们的包装等等。
上述大多数方法都会增加复杂性和运行时成本,因此我的建议是避免您需要执行此类操作的设计。如果可行,只需记录该对象应被视为只读,并将其留给编写该方法的人员的常识来执行正确的操作。
例如,众所周知的事实是,您不应更改用作 Map
中的键的对象的状态,以免其值发生变化。然而,通常不采取任何措施来尝试“强制”这一点;即使用可变对象作为键......并且只是不更改它们。
正如已经提到的,使用 ==
是不正确的。为了便于阅读,请尝试:
field.getText().isEmpty()
或
field.getText().trim().isEmpty()
如果有人仍在寻找答案,计算距离很简单(精确获取方向很难计算,如果有人知道简单的答案,请添加)
所以检查您的经纬度值之间的差异,将十进制度更改为 0.001 意味着 111m 距离。检查纬度和经度到十进制的变化最大 0.001 将在您的点周围绘制一个半径为 111m 的圆。
前任。您的起点是 A(Lat1,Lng1)。您想要测试的点 B(LatB,LngB) 、 C(LatC,LngC) .....
if: (Lat1 - 0.001) <纬度B (Lat1 + 0.001) && (Lng1-0.001)< LngB < (Lng1 + 0.001) == True // B 点半径为 100m。
如果:(Lat1 - 0.001) <纬度C < (Lat1 + 0.001) && (Lng1-0.001)<液化天然气碳< (Lng1 + 0.001) == False // C 点不在 100m 半径内。
十进制度参考 https://en.wikipedia.org/wiki/Decimal_ Degrees
十进制 | 度 | 距离 |
---|---|---|
0 | 1.0 | 111公里 |
1 | 0.1 | 11.1公里 |
2 | 0.01 | 1.11公里 |
3 | 0.001 | 111 m |
4 | 0.0001 | 11.1 m |
5 | 0.00001 | 1.11 m |
6 | 0.000001 | 0.111 m |
7 | 0.0000001 | 1.11 cm |
8 | 0.00000001 | 1.11毫米 |
我认为将语法从 3.1 设置为 2.5 是一个坏主意。只需下载较旧的 python 2.5 版本并使用编译器和库即可。在主要版本之间,API 签名会发生变化,并且会添加新功能。您无法在 pydev 中进行高版本开发并在不遇到问题的情况下编译另一个版本。此外,Python 3.1 向后不兼容 Python 2.x(例如 print 是一个函数),因此如果需要的话,最好下载并使用 Python 2.5。
I think it is a bad idea to set the grammar to 2.5 from 3.1. Just download the older python 2.5 version and use the compiler and the libraries with it. Between major versions changes happen to the API signatures and new features get added. You cannot afford to develop in high version in pydev and compile for another without encountering problem. Moreover Python 3.1 is backwards incompatible with Python 2.x (print is a function for e.g), so it is better you download and use Python 2.5 if that is the requirement.
Python 的版本