• 4656阅读
  • 4回复

C#从Aplayer.dll文件中创建AxtiveX控件 [复制链接]

上一主题 下一主题
离线witace
 

只看楼主 倒序阅读 使用道具 楼主  发表于: 2018-07-12

参考论坛中C#免注册调用APlayer的方法,生成的应用程序在别的电脑上死活运行不了
编译时也出现隔离COM引用的问题
帮助文档中有C++从文件创建对象的实例,可是不知道怎样转换成C#
不知有没有哪位大神有C#从dll文件中创建AxtiveX控件的方法?
感激不尽!
离线aplayer

只看该作者 沙发  发表于: 2018-07-12
如果你觉得这么创建不方便,还有一种方式,就是调用 APlayerCaller.dll,这样就只要能调用动态链接库,就能创建 APlayer 了。
离线witace

只看该作者 板凳  发表于: 2018-07-13
回 aplayer 的帖子
aplayer:如果你觉得这么创建不方便,还有一种方式,就是调用 APlayerCaller.dll,这样就只要能调用动态链接库,就能创建 APlayer 了。 (2018-07-12 16:47) 

这个APlayerCaller.dll是不是跟那个易语言调用的是一样的?具体应该怎样调用呢?有没有具体的代码?
离线aplayer

只看该作者 地板  发表于: 2018-07-13
APlayerCaller.dll 是把 ActiveX 调用转为普通 DLL调用的方式的工具,论坛有开源的代码,具体使用方法:

创建:返回 APlayer LONG_PTR 类型的句柄
LONG_PTR APlayer_Create(LONG_PTR            hParentWnd,
                        LONG                x,
                        LONG                y,
                        LONG                nWidth,
                        LONG                nHeight,
                        LONG            OnMessage,
                        LONG        OnStateChanged,
                        LONG        OnOpenSuccess,
                        LONG    OnSeekCompleted,
                        LONG            OnBuffer,
                        LONG    OnVideoSizeChanged,
                        LONG    OnDownloadCodec,
                        LONG            OnEvent);

销毁:传入 APlayer 句柄
BOOL APlayer_Destroy(LONG_PTR aplayer);

调用 APlayer 方法(顾名思义):
BOOL APlayer_OpenW(LONG_PTR aplayer, WCHAR* pszUrl)
BOOL APlayer_OpenA(LONG_PTR aplayer, char* pszUrl)
BOOL APlayer_Close(LONG_PTR aplayer)
BOOL APlayer_Play(LONG_PTR aplayer)
BOOL APlayer_Pause(LONG_PTR aplayer)
char* APlayer_GetVersion(LONG_PTR aplayer)
BOOL APlayer_SetCustomLogo(LONG_PTR aplayer,LONG nLogo)
LONG APlayer_GetState(LONG_PTR aplayer)
LONG APlayer_GetDuration(LONG_PTR aplayer)
LONG APlayer_GetPosition(LONG_PTR aplayer)
LONG APlayer_SetPosition(LONG_PTR aplayer, LONG nPosition)
LONG APlayer_GetVideoWidth(LONG_PTR aplayer)
LONG APlayer_GetVideoHeight(LONG_PTR aplayer)
LONG APlayer_GetVolume(LONG_PTR aplayer)
LONG APlayer_SetVolume(LONG_PTR aplayer, LONG nVolume)
LONG APlayer_IsSeeking(LONG_PTR aplayer)
LONG APlayer_GetBufferProgress(LONG_PTR aplayer)
char* APlayer_GetConfigA(LONG_PTR aplayer, LONG nConfigId)
WCHAR* APlayer_GetConfigW(LONG_PTR aplayer, LONG nConfigId)
LONG APlayer_SetConfigW(LONG_PTR aplayer, LONG nConfigId, WCHAR* strValue)
LONG APlayer_SetConfigA(LONG_PTR aplayer, LONG nConfigId, char* strValue)
LONG_PTR APlayer_GetWindow(LONG_PTR aplayer)
BOOL APlayerCaller_SetSize(LONG_PTR aplayer, LONG x, LONG y, LONG nWidth, LONG nHeight);

离线jfjdkkvd

只看该作者 4楼 发表于: 2018-07-13
可以论坛搜索下啊
blog.sina.com.cn/u/6382697589
快速回复
限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
上一个 下一个