- 博客(1)
- 资源 (57)
- 收藏
- 关注
转载 VideoProcAmpProperty
我用 下面这段代码设置抓取视频的参数,大多数都可以,而VideoProcAmp_WhiteBalance,VideoProcAmp_Gamma却没有任何反映,不知道具体原因在那里,或者有其它的方法吗?(50‘)还有,用ISpecifyPropertyPages弹出的视频设置窗口不止由VideoProcAmpProperty所提供的那10个参数,那么,其它的那些怎么设置呢?(150’)请这方面的...
2018-08-07 09:17:11 1159
WORKLIST 测试软件DICOM modality worklist client 3.00.rar (9.8 MB)
WORKLIST 测试软件DICOM modality worklist client 3.00.rar (9.8 MB)
2015-12-19
C++ COM实现之一 创建一个DLL
C++ COM实现之一 创建一个DLL
COM是一种接口技术,它提供了一种方法用于客户程序进行调用。COM原理和技术的文章已经很多了,就不过多讲解了,这里只注重实现。下面分几步对进程内COM组件进行编码实现以达到对实现一个COM的清晰的认识,目的是通过COM接口方法调用DLL中的函数。
首先,创建一个标准的win32 DLL项目mycom,dllmain入口实现如下:
[c-sharp] view plaincopy
1. DWORD g_dwAttachedProcesses = 0L; // # of attached processes
2. DWORD g_dwPageSize = 0L; // System page size
3. HINSTANCE g_hInstance = 0L; // Instance Handle
4. LONG g_cLock = 0L; // # of outstanding objects
5. BOOL APIENTRY DllMain( HMODULE hModule,
6. DWORD ul_reason_for_call,
7. LPVOID lpReserved
8. )
9. {
10. BOOL fRetVal = FALSE;
11. SYSTEM_INFO SystemInformation;
12. switch(ul_reason_for_call)
13. {
14. case DLL_PROCESS_ATTACH:
15. // Assume successfully initialized
16. fRetVal = TRUE;
17. // Do one-time initialization when first process attaches
18. if(!g_dwAttachedProcesses)
19. {
20. g_hInstance = (HINSTANCE)hModule;
21. // Get the system page size
22. if(!g_dwPageSize)
23. {
24. GetSystemInfo( &SystemInformation ); // can't fail
25. g_dwPageSize = SystemInformation.dwPageSize;
26. }
2015-11-21
VS2010中使用C++创建和使用DL.docx
VS2010中使用C++创建和使用DL.docx,文档加代码,全了。工程代码下载:
1.生成动态链接库(_declspec(dllexport)方式导出函数)
2.生成动态链接库(以.def文件(模块定义文件)方式导出函数)
3.以加载时动态链接方式调用DLL
4.以运行时动态链接方式调用DLL
5.以模块定义方式(.def文件)建立的动态链接库的调用
遇到的问题:
1.库导入的时候目录的问题。对应文中的问题1,后面有解释。
2.字符集的问题(是Unicode字符集还是多字节集),两种方案,一种修改字符集为多字节集,二是将字符串前面加 _T(""),文中问题2
3.不知道怎么通过模块定义文件方式生成DLL,通过看参考博客的代码找到了答案,主要修改头文件,和添加模块定义文件。
4.模块定义文件中的库文件名应和工程名一致。
DllMain函数
Windows在加载DLL时,需要一个入口函数,就像控制台程序需要main函数一样。有的时候,DLL并没有提供DllMain函数,应用程序也能成功引用DLL,这是因为Windows在找不到DllMain的时候,系统会从其它运行库中引入一个不做任何操作的默认DllMain函数版本,并不意味着DLL可以抛弃DllMain函数。
根据编写规范,Windows必须查找并执行DLL里的DllMain函数作为加载DLL的依据,它使得DLL得以保留在内存里。这个函数并不属于导出函数,而是DLL的内部函数,这就说明不能在客户端直接调用DllMain函数,DllMain函数是自动被调用的。
DllMain函数在DLL被加载和卸载时被调用,在单个线程启动和终止时,DllMain函数也被调用。参数ul_reason_for_call指明了调用DllMain的原因,有以下四种情况:
DLL_PROCESS_ATTACH:当一个DLL被首次载入进程地址空间时,系统会调用该DLL的DllMain函数,传递的ul_reason_for_call参数值为DLL_PROCESS_ATTACH。这种情况只有首次映射DLL时才发生;
DLL_THREAD_ATTACH:该通知告诉所有的DLL执行线程的初始化。当进程创建一个新的线程时,系统会查看进程地址空间中所有的DLL文件映射,之后用DLL_THREAD_ATTACH来调用DLL中的DllMain函数。要注意的是,系统不会为进程的主线程使用值DLL_THREAD_ATTACH来调用DLL中的DllMain函数;
DLL_PROCESS_DETACH:当DLL从进程的地址空间解除映射时,参数ul_reason_for_call参数值为DLL_PROCESS_DETACH。当DLL处理DLL_PROCESS_DETACH时,DLL应该处理与进程相关的清理操作。如果进程的终结是因为系统中有某个线程调用了TerminateProcess来终结的,那么系统就不会用DLL_PROCESS_DETACH来调用DLL中的DllMain函数来执行进程的清理工作。这样就会造成数据丢失;
DLL_THREAD_DETACH:该通知告诉所有的DLL执行线程的清理工作。注意的是如果线程的终结是使用TerminateThread来完成的,那么系统将不会使用值DLL_THREAD_DETACH来执行线程的清理工作,这也就是说可能会造成数据丢失,所以不要使用TerminateThread来终结线程。以上所有讲解在工程DLLMainDemo(工程下载)都有体现。
函数导出方式
2017-09-15
GE16排CT操作手册(中文)二文GE16排CT操作手册(中文)---2003的新版.pdf
GE16排CT操作手册(中文),和GE16排CT操作LightSpeed™ Series
学习与参考指南
2369740-141 修订版 1 (04/03)
CT 系统
学习和参考指南
5352087-1ZH-CN
修订版:2
GE Medical Systems 与 GE Healthcare 经营相似业务
该手册支持以下产品名称:
Discovery CT590 RT
Optima CT580 (Optima CT580 RT 和 Optima CT580 W)
BrightSpeed Elite
BrightSpeed Excel Select
BrightSpeed Edge Select
BrightSpeed Elite Select
0459
GE16排CT操作手册(中文)---2003的新版.pdf
1 2009 年 11 月CT 系统首次发布
2 2010 年 11 月更新内容
2016-10-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人