cef3手动编译.zip
cef3分支3809windows7系统下编译全攻略,添加mp4、mp3解码支持。重点说明了如下快速下载完成编译需要的所有资源。附下载和编译脚本。
vs2012 mvc4 ef6 mvcpager示例
官网下的mvcpager,vs2012+mvc4+ef6环境下调试通过,数据库引擎改成了LocalDB,生成的ef6代码也略有不同,感谢原作者的辛勤劳动。
Gamebryo3 引擎种子
测试可用,不过用了迅雷的VIP下载的,不然的话下载速度太慢。
delphi+sqlite3带加密Demo
delphi 使用sqlite3加密功能
1、获取sqlite3.dll,去网上下载wxsqlite3的最新版本代码,解压后其中有一个sqlite3目录,其中有编译好的版本,lib目录下的是原版本,secure目录下有aes128和aes256两个带加密的版本,直接拿其中任一个sqlite3.dll使用即可
2、操作用到的控件,在sqlite3的官网上有不少推荐的sqlite3操作的项目,其中有delphi的,有收费的也有免费的,如果愿意可以去看看,我这里用的是unidac4的版本,网上有破解了的,直接支持操作带加密功能的sqlite3.dll
3、安装好unidac4后,其中有uniconnection可以连接sqlite3,ProviderName选SQLite即可,在Database那里输入数据库文件名称,SpecificOptions那里可以选择客户端dll,也就是你使用的sqlite3.dll,还有加密用到的密钥以及一些其他有用的设置,具体我就不说了。
4、设置好这些后,就可以用uniQuery查询和操作数据库了,这些不用我说了吧,^-^。
如果嫌麻烦可以直接下载我这个demo程序,里面有带sqlite3.7.10版本的sqlite3.dll,包括原版和2个加密版,还送unidac4的操作例子。
编译环境是win7+dxe2+unidac4
Indy10 for .net dll
indy 10 for .net 的DLL,2个DLL,在VS2005环境下测试通过,试过了不支持.NET FRAMEWORK4 VS2010编译通过不了,这个用来做TCP客户端,可以和用DELPHI INDY10做 的文件服务器下载数据。
DsoFramer_V2.3.0.1
源代码以及编译好的ocx
win7+vc6编译通过。
Krystalware.SlickUpload5.5.3
SlickUpload5.5.3的破解,屏蔽了版权显示信息。
nerosdk1.08
顺便拿laibeikele写的使用类
public class NeroBurn
{
#region 属性
private NeroDrive m_neroDerive;
private Nero m_nero;
private bool m_aborted;
private string m_burnPath;
private bool m_isDoneBurn;
private int m_returnCode;//0:失败;1:成功;-1:未知
private string m_discvol;
//nero 委托
private _INeroDriveEvents_OnDoneBurnEventHandler m_evOnDoneBurn;
private _INeroDriveEvents_OnAddLogLineEventHandler m_evOnAddLogLine;
private _INeroEvents_OnWaitCDEventHandler m_evOnWaitCD;
private _INeroDriveEvents_OnAbortedEventHandler m_evOnAborted;
private _INeroDriveEvents_OnProgressEventHandler m_evOnProgress;
private _INeroEvents_OnWaitCDDoneEventHandler m_evOnWaitCDDone;
#endregion
#region 构造函数
/// <SUMMARY></SUMMARY>
/// 构造函数
///
/// <PARAM name="driverletter" />盘符
/// <PARAM name="burnpath" />待刻录的文件路径
/// <PARAM name="discvol" />盘的卷标
public NeroBurn(string driverletter,string burnpath,string discvol)
{
m_burnPath = burnpath;
m_nero = new NeroClass();
m_neroDerive = allocDevice(driverletter);
m_aborted = false;
m_isDoneBurn = false;
m_discvol = discvol;
}
#endregion
#region Nero事件处理
/// <SUMMARY></SUMMARY>
/// 发起刻录事件
///
/// <PARAM name="bSubscribe" />
private void SubscribeToEvents(bool bSubscribe)
{
if (bSubscribe)
{
m_evOnAddLogLine = new _INeroDriveEvents_OnAddLogLineEventHandler(m_drive_OnAddLogLine);
m_neroDerive.OnAddLogLine += m_evOnAddLogLine;
m_evOnWaitCD = new _INeroEvents_OnWaitCDEventHandler(m_nero_OnWaitCD);
m_nero.OnWaitCD += m_evOnWaitCD;
m_evOnDoneBurn = new _INeroDriveEvents_OnDoneBurnEventHandler(m_drive_OnDoneBurn);
m_neroDerive.OnDoneBurn += m_evOnDoneBurn;
m_evOnWaitCDDone = new _INeroEvents_OnWaitCDDoneEventHandler(m_nero_OnWaitCDDone);
m_nero.OnWaitCDDone += m_evOnWaitCDDone;
m_evOnProgress = new _INeroDriveEvents_OnProgressEventHandler(m_drive_OnProgress);
m_neroDerive.OnProgress += m_evOnProgress;
}
else
{
m_neroDerive.OnAddLogLine -= m_evOnAddLogLine;
m_nero.OnWaitCD -= m_evOnWaitCD;
m_nero.OnWaitCDDone -= m_evOnWaitCDDone;
m_neroDerive.OnDoneBurn -= m_evOnDoneBurn;
m_neroDerive.OnProgress -= m_evOnProgress;
}
}
private void m_drive_OnProgress(ref int ProgressInPercent, ref bool Abort)
{
// This events gives us an opportunity to show progress
// as well as abort if needed.
//
Abort = m_aborted;
Console.WriteLine("光盘" + m_discvol + " " + ProgressInPercent.ToString() + "% had Burned!!");
//c_TaskPercent.Text = ProgressInPercent.ToString() + "%";
}
private void m_nero_OnWaitCDDone()
{
// When waiting on a disc is done, make sure to
// enable us and hide the WaitCD form.
//
Console.WriteLine("a Disc has inserted!");
}
/// <SUMMARY></SUMMARY>
///刻录完成,不管失败成功!
///
/// <PARAM name="StatusCode" />
private void m_drive_OnDoneBurn(ref NERO_BURN_ERROR StatusCode)
{
// When burning is over, make sure to unsubscribe from all
// events.
//
SubscribeToEvents(false);
if (StatusCode == NERO_BURN_ERROR.NERO_BURN_OK)
{
m_returnCode = 1;
Console.WriteLine(m_neroDerive.DriveLetter + "盘卷标为 " + m_discvol + " 刻录成功!!");
}
else
{
m_returnCode = 0;
Console.WriteLine(m_neroDerive.DriveLetter + "盘卷标为 " + m_discvol + " 刻录失败!!");
}
m_isDoneBurn = true;
Console.WriteLine("Burn Finish!!");
}
/// <SUMMARY></SUMMARY>
/// 如果光驱为空,等待光驱
///
/// <PARAM name="WaitCD" />
/// <PARAM name="WaitCDLocalizedText" />
private void m_nero_OnWaitCD(ref NERO_WAITCD_TYPE WaitCD, ref string WaitCDLocalizedText)
{
Console.WriteLine("Wait CD...");
}
/// <SUMMARY></SUMMARY>
/// 写日志
///
/// <PARAM name="TextType" />
/// <PARAM name="Text" />
private void m_drive_OnAddLogLine(ref NERO_TEXT_TYPE TextType, ref string Text)
{
Console.WriteLine( Text);
}
#endregion
#region 申请设备
/// <SUMMARY></SUMMARY>
/// 申请设备
///
/// <PARAM name="driverletter" />
/// <RETURNS></RETURNS>
private NeroDrive allocDevice(string driverletter)
{
NeroDrives drives = m_nero.GetDrives(NERO_MEDIA_TYPE.NERO_MEDIA_DVD_M);
if (drives.Count > 0)
{
foreach (NeroDrive d in drives)
{
if (driverletter.ToLower().Contains(d.DriveLetter.ToLower()))
return d;
}
}
return null;
}
#endregion
#region 刻录
/// <SUMMARY></SUMMARY>
/// 刻录
///
/// <RETURNS></RETURNS>0: 失败;1:成功;-1:未知错误
public int Burn()
{
m_isDoneBurn = false;
SubscribeToEvents(true);
NeroISOTrack isoTrack = new NeroISOTrackClass();
isoTrack.BurnOptions = (NERO_BURN_OPTIONS)((uint)NERO_BURN_OPTIONS.NERO_BURN_OPTION_CREATE_ISO_FS + (uint)NERO_BURN_OPTIONS.NERO_BURN_OPTION_USE_JOLIET);
isoTrack.Name = m_discvol;
Console.WriteLine("Begin AddFilesAndFoldersToISOTrack.");
AddFilesAndFoldersToISOTrack(ref isoTrack, m_burnPath);
Console.WriteLine("End AddFilesAndFoldersToISOTrack.");
if (isoTrack.RootFolder.Files.Count == 0 &&
isoTrack.RootFolder.Folders.Count == 0)
{
isoTrack = null;
return 0;
}
NERO_BURN_FLAGS flags = new NERO_BURN_FLAGS();
flags = flags | NERO_BURN_FLAGS.NERO_BURN_FLAG_WRITE;
flags = flags | NERO_BURN_FLAGS.NERO_BURN_FLAG_CLOSE_SESSION;
flags = flags | NERO_BURN_FLAGS.NERO_BURN_FLAG_BUF_UNDERRUN_PROT;
flags = flags | NERO_BURN_FLAGS.NERO_BURN_FLAG_DISABLE_ABORT;
flags = flags | NERO_BURN_FLAGS.NERO_BURN_FLAG_DAO;
flags = flags | NERO_BURN_FLAGS.NERO_BURN_FLAG_CD_TEXT;
flags = flags | NERO_BURN_FLAGS.NERO_BURN_FLAG_DETECT_NON_EMPTY_CDRW;
flags = flags | NERO_BURN_FLAGS.NERO_BURN_FLAG_SPEED_IN_KBS;
try
{
if (null == m_neroDerive)
{
Console.WriteLine("m_neroDerive is null!!");
return -1;
}
int speed = 10000;
string BurnSpeed_s = System.Configuration.ConfigurationSettings.AppSettings["BurnSpeed"];
if (!string.IsNullOrEmpty(BurnSpeed_s))
speed = int.Parse(BurnSpeed_s);
m_neroDerive.BurnIsoAudioCD("", "", false,
isoTrack,
null,
null,
flags,
speed,
NERO_MEDIA_TYPE.NERO_MEDIA_DVD_M);
//循环执行,等待刻录完成
while (true)
{
if(m_isDoneBurn) //如果刻录完成
return m_returnCode;
System.Threading.Thread.Sleep(1000);
}
}
catch (Exception e)
{
m_aborted = true;
Console.WriteLine("Burn Error : "+e.Message);
return 0;
}
return -1;
}
#endregion
#region 辅助函数
/// <SUMMARY></SUMMARY>
/// This function adds the files and folders to the supplied NeroISOTrack.
/// Add by Cola 2008-4-14
///
/// <PARAM name="isoTrack" />
/// <PARAM name="discPath" />
private void AddFilesAndFoldersToISOTrack(ref NeroISOTrack isoTrack, string discPath)
{
string sPath = discPath;
// The string should really not be empty...
//
if (sPath != "")
{
// If path ends in a backslash, it is a folder.
//
if (sPath[sPath.Length - 1] == '\\')
{
NeroFolder folder = isoTrack.RootFolder;
AddFolderRecursively(ref folder, sPath);
}
else
{
// This is a file. Create a new NeroFile
// change its properties.
//
NeroFile file = new NeroFileClass();
file.SourceFilePath = sPath;
file.Name = Path.GetFileName(sPath);
file.EntryTime = Directory.GetLastWriteTime(sPath);
// In this implementation, specified files are added
// to the root of the disc only.
//
isoTrack.RootFolder.Files.Add(file);
}
}
}
/// <SUMMARY></SUMMARY>
/// This function is used to recursively add the path to the supplied
/// parent NeroFolder. Add by Cola 2008-4-14
///
/// <PARAM name="folderParent" />
/// <PARAM name="sPath" />
private void AddFolderRecursively(ref NeroFolder folderParent, string sPath)
{
NeroFolder folder = new NeroFolderClass();
folderParent.Folders.Add(folder);
string[] sSplits = sPath.Split(new char[] { '\\' }, sPath.Length);
if (sSplits.GetLength(0) >= 2)
{
string sFolderName = sSplits[sSplits.GetLength(0) - 2];
folder.Name = sFolderName;
string[] sDirectories = Directory.GetDirectories(sPath);
foreach (string sSubDirPath in sDirectories)
{
AddFolderRecursively(ref folder, sSubDirPath + "\\");
}
}
string[] sFiles = Directory.GetFiles(sPath);
foreach (string sFile in sFiles)
{
NeroFile file = new NeroFileClass();
file.SourceFilePath = sFile;
file.Name = Path.GetFileName(sFile);
file.EntryTime = Directory.GetLastWriteTime(sFile);
folder.Files.Add(file);
}
}
#endregion
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/laibeikele/archive/2008/06/01/2500185.aspx