导航:
论坛 -> DELPHI技术
斑竹:liumazi,sephil
作者:
2020/1/27 20:44:52
标题:
那个兄弟可以帮忙翻译成delphi格式啊
浏览:1939
加入我的收藏
楼主:
那个同学可以帮忙翻译成Delphi代码啊,谢谢 CreateAPlayerFromFile 演示了如何从文件中创建一个 APlayer 对象, 其中 g_szAppPath 为应用程序所在目录: #import "../Bin/APlayer.dll" // 导入 APlayer 引擎的类型库 HWND g_hAxWnd = NULL; // APlayer 控件容器 APlayer3Lib::IPlayer * g_pPlayer = NULL; // 指向 APlayer 对象的指针 BOOL CreateAPlayerFromFile(void) { // Get aplayer path TCHAR szPath[MAX_PATH]; wsprintf(szPath, _T("%s\\APlayer.dll"), g_szAppPath); // Create APlayer instance IDispatch * pDispatch = NULL; HRESULT hr = CreateInstanceFromFile (szPath, __uuidof(APlayer3Lib::Player), __uuidof(IDispatch), NULL, (void **)&pDispatch); if(FAILED(hr) || pDispatch == NULL) { return FALSE; } // Create AX window g_hAxWnd = ::CreateWindowEx(WS_EX_TOOLWINDOW, _T(ATLAXWIN_CLASS), _T(""), WS_CHILD|WS_VISIBLE|WS_CLIPCHILDREN|WS_CLIPSIBLINGS, 0, 0, 1, 1, m_hParentWnd, NULL, NULL, NULL); if(g_hAxWnd == NULL) { return FALSE; } // Attach aplayer hr = AtlAxAttachControl(pDispatch, g_hAxWnd, NULL); if(FAILED(hr)) { pDispatch->Release(); return FALSE; } hr = pDispatch->QueryInterface(__uuidof(APlayer3Lib::IPlayer), (void **)&g_pPlayer); if(FAILED(hr) || m_pPlayer == NULL) { return FALSE; } return TRUE; } 上面函数中用到的 CreateInstanceFromFile 函数定义如下: HRESULT CreateInstanceFromFile(const TCHAR * pcszPath, REFCLSID rclsid, REFIID riid, IUnknown * pUnkOuter, LPVOID * ppv) { // Load the library HMODULE hDll = ::LoadLibraryEx(pcszPath, NULL, LOAD_WITH_ALTERED_SEARCH_PATH); if(hDll == NULL) return TYPE_E_CANTLOADLIBRARY; // Get pointer of DllGetClassObject typedef HRESULT (STDAPICALLTYPE *_pfnDllGetClassObject)(REFCLSID, REFIID, LPVOID*); _pfnDllGetClassObject pfnDllGetClassObject = (_pfnDllGetClassObject) GetProcAddress(hDll, "DllGetClassObject"); if(pfnDllGetClassObject == NULL) return CO_E_ERRORINDLL; // Call DllGetClassObject CComPtr<IClassFactory> spCF; HRESULT hr = (*pfnDllGetClassObject)(rclsid, IID_IClassFactory, (LPVOID*)&spCF); if(FAILED(hr)) return hr; // Create instance hr = spCF->CreateInstance(pUnkOuter, riid, ppv); if(FAILED(hr)) return hr; // Create completed return S_OK; }
----------------------------------------------
-
作者:
2020/1/28 11:00:30
1楼:
有兄弟知道吗
----------------------------------------------
-
作者:
2020/1/28 11:32:16
2楼:
Try this Open Source Code to Converter C Builder to Delphi dialects!NOT PERFECT TRANSLATE OK https://community.idera.com/developer-tools/b/blog/posts/c-to-delphi-converter-tool-can-quickly-and-easily-help-you-convert-standard-c-code-to-delphi On GitHUB: C-To-Delphi by "Wouter Van Nifterick" Description This tool will convert most of your standard C code. . Download executable here. It contains a split view, with C on the left and Delphi on the right. The Delphi code gets updated in realtime when you edit the C code. The editors are kept in sync, so you can easily find how a specific piece of code was converted. The Syntax checks of the generated code is verified. (uses DelphiAST) You can even run the generated code by pressing F9 (uses DWS) You can drag/drop multiple C files to the application. It'll find the .h files that belong to it, and convert all to .pas files in the same folder. Features: If function main exists, a program will be generated. Otherwise a pascal unit with interface/implementation sections. Converts routines and arguments Converts for loops Converts case statements Converts structs Converts enums Converts 1 and 2 dimensional arrays Converts many other common routines to Delphi equivalents (strcpy,strcat,strlen,printf,argv,argc,etc) Converts classes https://github.com/WouterVanNifterick/C-To-Delphi ---------- More about: http://www.festra.com/cb/ref-cbvsdelphi.htm
----------------------------------------------
The higher the degree, the greater the respect given to the humblest!RAD 11.3
作者:
2020/1/28 12:29:55
3楼:
https://www.cnblogs.com/dpower/p/6775086.html
----------------------------------------------
-
作者:
2020/1/28 21:42:06
4楼:
楼主是不知道怎样通过Delphi来用APlayer吗?直接通过Import Component把APlayer.dll和APlayerUI.dll作为ActiveX控件导入就可以了,生成APlayer3Lib_TLB.pas、APlayer3Lib_TLB.dcr和APlayerUILib_TLB.pas、APlayerUILib_TLB.dcr四个文件,加入到一个新的dpk包里,安装到Delphi的IDE里的AcitiveX控件面板就可以像一般控件一样拖入Form中使用了。简单试了一下,使用很方便。如果要COM免注册,可以参考楼上帖子。另外,APlayerUILib_TLB.pas和APlayerLib_TLB.pas同时安装的话,要注意一下APlayerUILib_TLB.pas里自动生成的类也是TPlayer,会和APlayerLib_TLB.pas里的重复,我是直接把Player全部替换成PlayerUI再编译的。
此帖子包含附件: 大小: 146.8K
----------------------------------------------
-
作者:
2020/1/28 22:28:42
5楼:
APlayUI可以直接用,控制键什么的都有了
此帖子包含附件: 大小: 147.9K
----------------------------------------------
-
作者:
2020/1/29 23:59:02
6楼:
谢谢楼上的,我只在IMPORT里面看到APLAYER.DLL,没有看到APLAYERUI.DLL么,还是是不是只要装了迅雷的朋友,就会自动注册次控件?
----------------------------------------------
-
作者:
2020/1/30 0:09:20
7楼:
@movedown楼上的兄弟,你说的这句我没听懂:要注意一下APlayerUILib_TLB.pas里自动生成的类也是TPlayer,会和APlayerLib_TLB.pas里的重复,我是直接把Player全部替换成PlayerUI再编译的。 确实我只能是生成TPlayer一个控件,你上面说的TplayerUI这个控件没有找到呢
----------------------------------------------
-
作者:
2020/1/30 0:28:52
8楼:
还有,兄弟,就是到时候除了注册组件之外,我还在程序相同目录下在把这2个dll放进来吗?
----------------------------------------------
-
作者:
dalas (dalas)
★☆☆☆☆
-
普通会员
2020/1/30 0:35:53
9楼:
import component 时可以直接在 Class name 那里把 TPlayer 改成 TPlayerUI
此帖子包含附件: 大小: 51.1K
----------------------------------------------
-
作者:
dalas (dalas)
★☆☆☆☆
-
普通会员
2020/1/30 0:36:31
10楼:
此帖子包含附件: 大小: 63.5K
----------------------------------------------
-
作者:
dalas (dalas)
★☆☆☆☆
-
普通会员
2020/1/30 0:38:43
11楼:
此帖子包含附件: 大小: 60.0K
----------------------------------------------
-
作者:
2020/1/30 9:35:48
12楼:
做各种协议播放器 用迅雷的应该是够了
----------------------------------------------
[alias] co = clone --recurse-submodules up = submodule update --init --recursiveupd = pullinfo = statusrest = reset --hard懒鬼提速https://www.cctry.com/ >http://qalculate.github.io/downloads.htmlhttps://www.cctry.com/
作者:
2020/1/30 10:00:09
13楼:
to zhouying 你不是直接在APlayer的官方网站下载的SDK和解码库吗?SDK里的bin目录就有APlayerUI.dll啊,用SDK带的install.bat安装之后,在Import里就能看到了。像 dalas 说的,导入生成pas时改下名,避免和APlayer.dll导入时生成的控件重名。我觉得吧,发布时,最简单可以把SDK的bin目录和install.bat一起发布出去,先用install.bat安装一下注册一下,光APlayer.dll和APlayerUI.dll不够,因为还要用到codecs目录下解码库里的dll,除非目标机器原来就有。如果要免注册,要自己写下代码了,参考3楼cnblogs那个链接。
此帖子包含附件: 大小: 90.7K
----------------------------------------------
-
作者:
2020/1/30 10:15:28
13楼:
要不要必须安装迅雷?
----------------------------------------------
简单做人,认真做事。
作者:
2020/2/1 17:46:23
14楼:
谢谢楼上的几位,不过刚才试了下,貌似有部分m3u8播放地址迅雷还是不支持。
----------------------------------------------
-
作者:
2020/2/2 20:31:07
15楼:
@zhouying 不能播放的发出来。 估计是 有啥中专加密之类的
----------------------------------------------
-