直接上代码
// 证书提取.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <wtypes.h>
#include<cryptuiapi.h>
#include <atlstr.h>
// Link with the Crypt32.lib file.
#pragma comment(lib, "Crypt32")
#pragma comment(lib, "comsuppw.lib")
#pragma comment(lib, "Cryptui.lib")
#define MY_ENCODING_TYPE (PKCS_7_ASN_ENCODING | X509_ASN_ENCODING)
HCERTSTORE hSystemStoreCA; // 系统证书库句柄 CA
HCERTSTORE hSystemStoreMY; //
HCERTSTORE hSystemStoreROOT;
HCERTSTORE hSystemStoreSPC;
HCERTSTORE hMemoryStore;
HCERTSTORE hCollectionStore; // 集合证书库句柄
PCCERT_CONTEXT pDesiredCert = NULL; // 证书句柄
char pszNameString[256];//证书名字
HANDLE hStoreFileHandle;
char s1[100]; // 证书路径
int count = 0, index;
//错误提示
void HandleError(char *s)
{
printf("error.\n");
printf("%s\n", s);
printf("error %x.\n", GetLastError());
printf("error.\n");
system("pause");
exit(1)