我需要从我用PowerBuilder开发的实用程序中找到的一些特定库中删除一些对象,但是通过脚本删除对象并不容易。
有一个ORCA,我以前从未使用过,也不知道如何使用它。
我正在阅读ORCA指南,但没有完整的示例。
我的实用工具返回要传递给LibraryEntryDelet方法以删除对象的对象位置。
有人能帮我处理LibraryEntryDelet的示例代码吗?
PB12.x
发布于 2020-04-25 12:30:55
我知道,这是个老生常谈的问题,但也许有人会看看这个。
C#有一定的启示;
public class Orca
{
// Orca Session
[DllImport("pborc170.dll", EntryPoint = "PBORCA_SessionOpen", CharSet = CharSet.Unicode, SetLastError = true)]
private static unsafe extern int PBORCA_SessionOpen170();
//Session close
[DllImport("pborc170.dll", EntryPoint = "PBORCA_SessionClose", CharSet = CharSet.Unicode, SetLastError = true)]
private static unsafe extern void PBORCA_SessionClose170(int hORCASession);
// Entry Delete
[DllImport("pborc170.dll", EntryPoint = "PBORCA_LibraryEntryDelete", CharSet = CharSet.Unicode, SetLastError = true)]
private static unsafe extern int PBORCA_LibraryEntryDelete170(int hORCASession, [MarshalAs(UnmanagedType.LPTStr)] string lpszLibName, [MarshalAs(UnmanagedType.LPTStr)] string lpszEntryName, PBORCA_TYPE otEntryType);
//set the entry type enums
private enum PBORCA_ENTRY_TYPE
{
PBORCA_APPLICATION,
PBORCA_DATAWINDOW,
PBORCA_FUNCTION,
PBORCA_MENU,
PBORCA_QUERY,
PBORCA_STRUCTURE,
PBORCA_USEROBJECT,
PBORCA_WINDOW,
PBORCA_PIPELINE,
PBORCA_PROJECT,
PBORCA_PROXYOBJECT,
PBORCA_BINARY
}
public static void LibraryEntryDelete(string pbl= "blabla.pbl", string entry = "blablaDatawindow", PBORCA_ENTRY_TYPE entryType= PBORCA_ENTRY_TYPE.PBORCA_DATAWINDOW)
{
//Open Session
int orcaSession = PBORCA_SessionOpen170();
//delete entry
PBORCA_LibraryEntryDelete170(orcaSession, pbl, entry, entryType);
//close session
PBORCA_SessionClose170(orcaSession );
}
}在.NET中,ORCA函数具有很大的潜力,也许可以从github的PBDotNet项目中了解更多的内容。
https://stackoverflow.com/questions/56681062
复制相似问题