2012年12月15日星期六

Hacking GLUT to Eliminate the glutMainLoop() Problem


http://www.sjbaker.org/steve/software/glut_hack.html

Hacking GLUT to Eliminate the glutMainLoop() Problem.

Mark Kilgard's GLUT library is one of the most truly useful aids to portable programming. It carefully hides all the ugly issues of window manipulation, producing simple menu's, keboard, mouse and joystick I/O. If your application can tolerate the restrictions of GLUT, it's a breeze to write code that will port across dozens of dissimilar platforms.

There has to be a 'BUT'...

Yep - there certainly is. GLUT is a strictly event driven library. Essentially, all GLUT applications must set up callbacks for all the events they are interested in (Keystrokes, redisplay, resize, mouse clicks, etc) - and then hand over control to a GLUT function called 'glutMainLoop()' - which never returns. That's fine for simple programs that don't use certain other libraries - but now and again, you'll want to link a GLUT program to another library that ALSO assumes control of the main loop. Another time this can be a pain is if you want to retro-fit a simple user interface into an existing, complex application which might not be able to use the glutIdleFunc callback.This turns off a lot of users and IMHO is an unnecessary restriction.

So What Can I do About It?

There are several ways to get around the problem of needing another library that also wants to 'own' the main loop.
  • You could attack the OTHER library and try to remove its main-loop restriction. That isn't always possible - and if you don't have the sources to the other library then you've had it.
  • You could try to create multiple execution threads - one for GLUT's main loop, another for the other library. That won't work in all operating systems - and some libraries are not at all thread-safe. This sometimes works well though.
  • You can hack GLUT.
The last option is really the reason for this Web page. I have found that a dozen lines of code is all that's required and the resulting hacked GLUT remains 100% compatible with the original library.

What Do I Do?

Locate the GLUT source code. In every release I have examined, there will be a file named lib/glut/glut_event.cInside that file you'll find the source for glutMainLoop(). In outline it looks like this:
/* CENTRY */
void APIENTRY
glutMainLoop(void)
{
  <some_error_checking>

  for (;;) {
    <some_other_code>
  }
}
/* ENDCENTRY */

This may be changed to look like this:
  /* CENTRY */
  void APIENTRY
  glutMainLoop(void)
  {
    for(;;)
      glutMainLoopUpdate () ;
  }
  /* ENDCENTRY */

  /* CENTRY */
  void APIENTRY
  glutMainLoopUpdate(void)
  {
    <some_error_checking>
    <some_other_code>
  }
  /* ENDCENTRY */

You'll have to add a declaration for glutMainLoopUpdate() into glut.h:
  extern void APIENTRY glutMainLoop(void);
  extern void APIENTRY glutMainLoopUpdate(void);

Recompile...and that's it.

How Do I Use It?

Now, your code can change from:
  glutMainLoop () ;

...to...
  while ( 1 )
    glutMainLoopUpdate () ;

But more usefully, you can now use one of the callbacks of some other library to call the new glutMainLoopUpdate() function:
  some_other_library_IdleFunc ( glutMainLoopUpdate ) ;
  some_other_library_MainLoop () ;

Is this Reliable?

It certainly seems to be - I know of dozens of people who have used this hack (or something very close to it) without any problems. All current GLUT implementations can be fixed in the exact same way.It does have a microscopic effect on performance because the error checking that glutMainLoop() used to do only once is now done in every iteration of glutMainLoopUpdate(). However, in all current GLUT releases, the amount of checking is truly negligable - so this should not be a concern. If it worries you then dump the error checking code - it's not checking for anything too subtle - just making sure you called glutInit and opened a window.

Will This Become a Part of the Normal GLUT Release?

Well, I begin to doubt it. It seems a simple enough change - and there is no doubt that people find it useful. However, I have now asked Mark Kilgard to include it in the release on several occasions. He refuses on grounds of unnecessary complexity - I don't understand that view - but GLUT is his baby and he has the right to release whatever he wants.

2012年12月3日星期一

Physics 6720: Calling Fortran Subroutines from C/C++

Physics 6720: Calling Fortran Subroutines from C/C++:

'via Blog this'


Physics 6720: Calling Fortran Subroutines from C/C++



It may happen that we find a useful subroutine written in ANSI Fortran 77 and want to call it from a C++ program.Let's start with an illustration. Follow the links to the explanatory notes.
On netlib we find a subprogram by C.S. Duris [published reference ACM TOMS 6, 92-103 (1980)] for constructing a cubic spline. We put it in a file dcsint.f. At the top of the Fortran file we find declarations and some related information:
      SUBROUTINE DCSINT(IENT, H, N, TNODE, G, END1, ENDN, B, C, D)
      DIMENSION TNODE(N), G(N), B(N), C(N), D(N)
C
C  INPUT PARAMETERS (NONE OF THESE PARAMETERS
C                          ARE CHANGED BY THIS SUBROUTINE.)
C
C  IENT  - SPECIFIES END CONDITIONS WHICH ARE IN EFFECT.
C  H     - THE STEP SIZE USED FOR THE DISCRETE CUBIC SPLINE.
C  N     - NUMBER OF NODES (TNODE) AND DATA VALUES (G).
C          (N.GE.2)
C  TNODE - REAL ARRAY CONTAINING THE NODES (TNODE(I).LT.
C          TNODE(I+1)).
C  G     - REAL ARRAY CONTAINING THE INTERPOLATING DATA.
C  END1  - END CONDITION VALUE AT TNODE(1).
C  ENDN  - END CONDITION VALUE AT TNODE(N).
C
C  OUTPUT PARAMETERS
C
C  B     - REAL ARRAY CONTAINING COEFFICIENTS OF
C          (T-TNODE(I)),I=1,2,....,N-1.
C  C     - REAL ARRAY CONTAINING COEFFICIENTS OF
C          (T-TNODE(I))**2,I=1,2,...,N-1.
C  D     - REAL ARRAY CONTAINING COEFFICIENTS OF
C          (T-TNODE(I))**3,I=1,2,...,N-1.
       ...
Here is how we construct The C++ code for calling this routine:
extern "C"{[1]
  void dcsint_(int *ient, float *h, int *n, float tnode[], float g[], 
              float *end1, float *endn, float b[],
              float c[], float d[]);[3][4]
  }
#define MAX 100
    ...

int main()
{
  int[2] ient = 2;      // End conditions (natural spline)
  float[2] h;           // Step size 
  int   n;           // Number of node values
  float tnode[MAX];  // Spline nodes   x[i]
  float g[MAX];      // Data values    y[i]
  float end1 = 0;    // End condition at node i = 0 (natural spline)[5]
  float endn = 0;    // End condition at node i = n-1 (natural spline)[5]
  float b[MAX];      // Coefficient of (t - tnode[i])   i = 0,1, ..., n-2[5]
  float c[MAX];      // Coefficient of (t - tnode[i])^2 i = 0,1, ..., n-2[5]
  float d[MAX];      // Coefficient of (t - tnode[i])^3 i = 0,1, ..., n-2[5]

   ...

  // Load tnode[i] and g[i] for i = 0,1, ..., n-1[5]

   ...

  h = tnode[1] - tnode[0];

  // Note that array names g, b, c, and d are already pointers to floats
  // but we use & to get pointers to ient, h, n, end1, endn

  dcsint_(&ient, &h, &n, tnode, g, &end1, &endn, b, c, d);[3] [4] 

   ...

Here is a Makefile for compiling and linking the code:
OBJECTS = dcsint.o main.o

main: ${OBJECTS}
      g++ -O ${OBJECTS} -o main
The local installation of make should have default rules for compiling the Fortran module.

Notes

Here are a number of points we need to keep in mind, some of which are illustrated in the example above:[1] C++ prototype declarations must be extern "C". 
You must include a prototype declaration of the Fortran routine you use. In C++ you must suppress "name mangling" by making the prototype extern "C" as in the example below. (Don't use this "extern" in a C program.)
[2] Fortran types must match C++ types. 
The variable type in C and C++ must match the Fortran type. Once one has determined the Fortran type, the translation to C and C++ is straightforward, but may depend on local hardware and compiler conventions.Here is how to determine the Fortran variable type. All declarations for Fortran variables are found at the top of the code. Fortran variable types are either implicit (undeclared) or explicit (declared). Implicit types are set by the first letter of the variable name. By default variables beginning with I, J, K, L, M, Nare INTEGER types. Otherwise they are REAL (single precision). This default may be overridden with an IMPLICIT statement near the top of the code. For example IMPLICIT REAL*8 (A-H,O-Z) causes the default real type to be double precision REAL*8. An array variable declared with DIMENSION takes on the implicit type. Any explicit type declaration overrides the implicit type. On our Solaris and Linux x86 systems, translate the most common numeric types as follows:

REAL, REAL*4float
REAL*8, DOUBLE PRECISIONdouble
INTEGERint
COMPLEX, COMPLEX*8float[2] (an array of two floats)
COMPLEX*16double[2] (an array of two doubles)
A number of LAPACK routines use single characters to specify options. For example the abstract might specify CHARACTER JOBZ, where JOBZ is 'N' or 'V'. In this case a C/C++ constant character string "N" or "V" works. Do not use single quotes, however, since Fortran needs the pointer that is generated with double quotes. 

[3] Global name of Fortran compiled object
The Fortran compiled object module is usually given a lower case name. With many Fortran compilers by default, an extra suffix underscore character is also attached. If you find this happening, you have to add it to the name you call, as we did, or change the Fortran compilation options, if possible.
[4] 
Fortran 77 arguments are pointers.
All Fortran arguments are passed as pointers, whether they are input or output values.
[5] 
Fortran array indexing is base 1.
An array in C and C++ is indexed starting from 0. In Fortran the index starts at 1. This is not a problem for passing simple arrays, because we just hand the Fortran routine the address of the first element, which we think of as element 0 and Fortran thinks of as element 1. But the distinction is important in interpreting the documentation.
[6] Fortran presents multiple array subscripts backwards from C/C++
Fortran matrix element A(3,5) translates to C/C++ matrix element a[4][2]. (Subtract 1 for zero base indexing and reverse the order of the subscripts.)The Fortran declaration REAL A(10,20) translates to the C/C++ declaration float a[20][10]. Note that Fortran documentation referring to the "leading" dimension of an array should be translated as the "last" dimension of an array: 10 in this example.
[7] LAPACK may be implemented locally with different calling rules
SUN repackages LAPACK with its own enhancements. It provides a separate binding for C and C++ that is indicated briefly in the documentation. However, the bulk of the documentation is still Fortran oriented, so it is necessary to understand how to translate subscript conventions from Fortran to C/C++. For information on using our SUN implementation of LAPACK, see the course handout .
For a discussion of the historical background of language differences and further linkage issues, see Nelson Beebe's notes .

Exercise

The LAPACK routine dsbtrd reduces a symmetric band matrix A to symmetric tridiagonal form. The input matrix A is required to be packed into a matrix AB according to the following instructions excerpted from the Fortran comments:
N         (input) INTEGER
                 The order of the matrix A.  N >= 0.

      KD        (input) INTEGER
                 The  number of superdiagonals of the matrix A if
                 UPLO = 'U', or the  number  of  subdiagonals  if
                 UPLO = 'L'.  KD >= 0.

      AB        (input/output) DOUBLE PRECISION array, dimension
                (LDAB,N)
                On entry, the upper or  lower  triangle  of  the
                symmetric  band  matrix  A,  stored in the first
                KD+1 rows of the array.  The j-th column of A is
                stored  in  the  j-th  column of the array AB as
                follows: if UPLO = 'U', AB(kd+1+i-j,j) =  A(i,j)
                for  max(1,j-kd)<=i<=j;  if  UPLO = 'L', AB(1+i-
                j,j)     =  A(i,j)  for  j<=i<=min(n,j+kd).
Suppose that in your C/C++ code you created a matrix a[MAX][MAX] containing an n by n symmetric banded matrix with kd bands above the diagonal, and you want to pack it into a new matrix ab for feeding to the subprogram.Write C/C++ code to pack the matrix, following the instructions above, using the 'U' convention.


Solution

We start with the declaration for the matrix ab. Because the order of indexing is reversed, we use
double ab[MAX][LDAB];
where MAX and LDAB are predefined macros.Next we translate the packing instructions. For the requested 'U' case we must apply the rule
    AB(kd+1+i-j,j) =  A(i,j) for  max(1,j-kd)<=i<=j
for all i,j in the range 1,2,...,n. Here is a straightforward solution:
for ( j = 1; j <= n; j++ )
       for ( i = max(1,j-kd); i <= j; i++ )
          ab[j-1][kd+i-j] = a[j-1][i-1];
Note that we reversed the order of the subscripts and reduced each subscript by one to get the zero base indexing in C/C++.
Physics Department Home Page
This page is maintained by:
Carleton DeTar Mail Form Last modified 27 October 2012

2012年11月24日星期六

Dynamic two-D array

1)  int(*sol) [100]
     sol = new int [Tmatch][100]

2) vector<int*> sol
    sol[i]= new int [Tmatch]

2012年10月9日星期二

为Ubuntu安装翻译词典(星际译王) — Smart Testing

为Ubuntu安装翻译词典(星际译王) — Smart Testing:

为Ubuntu安装翻译词典(星际译王)

在使用工作中我们经常需要用去查询一些英文单词的意义、对于像我这类从事计算机相关行业的朋友更是如此、windows下时候一直在用有道词典、因为Google翻译没桌面版、这次换到Ubuntu下面之后为了安装词典弄了很长时间、linux并不缺少词典软件、但是缺少词库、所有的词典软件都需要自己下载安装词库、所以找词库成了一件麻烦的事情。
1.在Ubuntu软件中心搜索stardict安装辞典(也可以搜索星际译王)
2.在应用程序下的附件可以找到安装的stardict
3.到http://abloz.com/huzheng/stardict-dic/zh_CN/ 下载需要的词库。(原来的官网已无法下载、找很久才找到这个网站)
4.运行终端。先cd到下载的文件夹。然后sudo tar -xjvf stardict-oxford-gb-2.4.2.tar.bz2
接着sudo mv stardict-oxford-gb-2.4.2 /usr/share/stardict/dic/
(我安装的是牛津现代英汉双解词典)
5.在stardict中的辞典管理可以看到增加的词库。
然后我们可以去星际译王上查询单词了


'via Blog this'

2012年9月28日星期五

金山词霸2006常规窗口不见了!只能看到最大化的的原因

http://blog.csdn.net/vc_asp/article/details/3952874

这大概是由于误操作使词霸窗口移动到了屏幕的边角。 恢复的步骤是: 1、点开词霸窗口后,在windows底部任务栏金山词霸项上点右键,选择"移动",此时光标变成十字移动型; 2、按任一个方向键(键盘上的↑↓←→均可)后,词霸界面便会出现在光标处(此时光标变回箭头); 3、点击鼠标左键将光标放在合适位置即可。

2012年9月5日星期三

ApacheMySQLPHP - Community Ubuntu Documentation

ApacheMySQLPHP - Community Ubuntu Documentation:

'via Blog this'

Apache2: Activating User public_html Directories & Virutal Directories- Hosts- Domains

Apache2: Activating User public_html Directories & Virutal Directories- Hosts- Domains:

'via Blog this'

» TP-Link TL-WN722N on Ubuntu 10.04

» TP-Link TL-WN722N on Ubuntu 10.04: "compat-wireless-2.6.38.2-2.tar"

'via Blog this'


Note: according this guy this set of steps also works for Fedora 15.
I had a lot of trouble getting this card to work. Here is how I finally got it.
I am running 2.6.32-30-generic-pae #59-Ubuntu SMP
running "lsusb" shows the following line for my device: 0cf3:9271 Atheros Communications, Inc.
I tried a bunch of different compat-wireless versions and this one finally did it. At the time, it was the latest stable release. The daily snapshots were causing kernel panics ... Download it, decompress it and build it:

$ tar xvf compat-wireless-2.6.38.2-2.tar.bz2
$ cd compat-wireless-2.6.38.2-2
$ ./scripts/driver-select ath9k_htc
$ sudo make
$ sudo make install
I had to download version 1.2 of htc_9271.fw the firmware from here and copied the file to /lib/firmware.
I was getting wlan%d instead of something reasonable like wlan0. Running sudo ifconfig wlan%d showed me the mac address which I could use to add an entry to /etc/udev/rules.d/70-persistent-net.rules. Heres the entry I added: (note that the browser adds newlines here, but you should add just two lines: one for the comment, and one for the rule)

# USB device 0x0cf3:0x9271 (usb)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="54:e6:fc:94:91:35", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan2"
reload the drivers by running:

sudo modprobe ath9k_htc
Now plug in the device. There were a lot of other steps that I followed while trying to get this to work, so I may have left something out.

Installing PHP5 and Apache on Ubuntu - How-To Geek

Installing PHP5 and Apache on Ubuntu - How-To Geek: "
sudo apt-get install apache2

sudo apt-get install php5

sudo apt-get install libapache2-mod-php5

sudo /etc/init.d/apache2 restart"

'via Blog this'

2012年8月24日星期五

[ubuntu] Installing jdk in ubuntu 12.04 (64 bit) - Ubuntu Forums

[ubuntu] Installing jdk in ubuntu 12.04 (64 bit) - Ubuntu Forums: "sudo apt-get install oracle-java7-installer"

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer

'via Blog this'

2012年5月21日星期一

IE主页被自动修改,无法编辑注册表Start Page


IE主页被自动修改,无法编辑注册表Start Page

2009-09-13 16:54:54|  分类: 电脑维护|字号 订阅

IE主页被自动修改,修改注册表“无法编辑Start Page:写该值的新内容出错”!我的IE7的主页被改成了"www.6700.cn?tn=102759",在IE属性-常规中修改成空白页后不重启主页正常,但

重启计算机后又被改回。

修改注册表HKEY_USER\.DEFAULT\Software\Microsoft\Internet Explorer\Main的StartPage键值时,总

是提示“无法编辑Start Page:写该值的新内容出错”,显示的已改成修改后的值,按F5又恢复原值。

解决:我也遇到过同样的问题,最后在别人指点下解决。方法是:鼠标右键点main->

权限->高级->编辑->完全控制那点下勾->然后再修改。完毕后用注册表里的查找命令用同一办法逐一修改

。也不知对你是否有用,请试一下。

active X 不启动的问题解决办法

regedit

HKey-》curent user->software->microsoft->window->current version -> internet setup->zones
把0上面的L那一项给删掉即可
将 1200设置成为 0 或者1

Office 2007 Configuration wizard runs every time I start any Application (word, excel, etc)

Office 2007 Configuration wizard runs every time I start any Application (word, excel, etc):

'via Blog this'

2012年5月16日星期三

已有的音色盘

正在下载
Chris Hein Guitar
巨人 EWQL solossus
----------------------
恐惧症交响乐 1 17G
Alciace Key 钢琴


Ez drum
Add drum



已安装
-------------------------
NI Battery 鼓  11G
Yellow Tools - Independence Free
维也纳原因吉他音色库

维也纳失真电吉他
Triology bass 3G


----
白金
Triology bass 3G
HyperSonic 2

2012年3月1日星期四

无需密码也做Windows计划任务

无需密码也做Windows计划任务

时间:2010-04-26 08:17来源:跟我学电脑

再过两天就是老婆的生日了,为了给老婆一个惊喜,就想出了利用Windows计划任务,定时播放我给她的留言祝福的妙招。不料设置完成后,却弹出错误窗口(如图)。

无需密码也做Windows计划任务

删除任务,重做一次,还是如此。在微软的网站下了个任务计划的补丁,依然无效,系统中的“Task Scheduler”服务设置为“自动”,还是弹出这个窗口。那么问题到底出在哪里呢?看着提示文字,突然注意到了最后那一行字——“您没有运行所请求的操作的权限”。想到我这个计算机账户是自动登录的,而登录密码为空,应该是这种方式登录没有“操作的权限”的问题吧?于是点击“开始→运行”,在对话框中输入“gpedit.msc”,编辑组策略:依次展开“计算机配置→Windows设置→安全设置→本地策略→安全选项”,双击右侧的“账户:使用空白密码的本地账户只允许进行控制台登录”项,在弹出对话框中选择“已禁用”。设置完成,再次设定计划任务,OK!万事俱备,就等着老婆生日的来临了!

2012年1月27日星期五

Gmail

Gmail:

'via Blog this'

Adobe Acrobat 9 Pro 的功能就不用我说了,很好很强大,以下方法是我在公司亲自测试的(好吧,我承认是我要用制作PDF的功能,但又过了试用期,又不可能向公司申请买正版,只能搞盗版,破解了)

首先,我在百度上找了好多种方法,都没用,所以先劝各位暂时还是不要幻想从网上下载破解补丁,没用的。

如果你的系统盘是C盘,那么就删除:
c:/Documents and Settings/All Users/Application Data/FLEXnet
目录下的adobe_00080000_tsf.data文件,注意这个文件是隐藏的!前面的文件夹若找不到,那就也是隐藏的(我的电脑/“文件夹”按钮/控制面板/文件夹选项/查看/显示所有文件)


还有


c:\Program Files\Common Files\Adobe\Adobe PCD\cache
目录下的cache.db文件,这个文件其实是一个SQLite数据库文件,也删掉
然后重新打开Adobe ,过一会,会跳出注册页面,输入序列号
1118-4756-9985-9882-7362-8611
1118-4612-5432-9405-1652-8740
1118-4418-0043-3745-4309-2816
1118-4018-6583-4956-2486-7805

序列号输入后,若正确,后面会打勾。至于后面的要求在网上注册填信息什么的,直接忽略掉,盗版的还注册个毛啊。

Adobe Acrobat Professional 8.0 多国语言版正式零售版(附注册机)_春暖花开_百度空间

Adobe Acrobat Professional 8.0 多国语言版正式零售版(附注册机)_春暖花开_百度空间:

'via Blog this'
Adobe Acrobat Professional 8.0 多国语言版正式零售版(附注册机)
2006-11-26 11:44

http://www.adobe.com/products/acrobatpro/

Adobe Acrobat 8主要增加了网络会议功能,使用多种软件平台的用户都可通过PDF文档共享信息,内建的安全机制可自由控制共享、编辑的具体内容。Acrobat 8还支持PDF/X-1a、PDF/X-3、PDF/X-4、PDF/A等新格式,可提供透明、存档等功能。

除了提供编辑功能的Acrobat 8,只有浏览功能的Adobe Reader 8将在下月发布。

Acrobat 8支持Windows和Mac(Universal binary,支持PPC和Intel核心Mac)的两种平台,专业版售价449美元,标准版售价299美元。

目前中文介绍不多,以下是官方介绍:
Adobe® Acrobat® 8 Professional software enables business professionals to reliably create, combine, and control Adobe PDF documents for easy, more secure distribution, collaboration, and data collection.
Create

Easily create Adobe PDF documents from Microsoft Office, Outlook, Internet Explorer, Project, Visio, Access, Publisher, AutoCAD®, Lotus Notes, or any application that prints.

Combine
Combine documents, drawings, and rich media content into a single, polished Adobe PDF document. Optimize file size, and arrange files in any order regardless of file type, dimensions, or orientation.

Collaborate
Enable users of Adobe Reader® software (version 7.0 or 8) to participate in shared reviews.Use the Start Meeting button to collaborate in real-time with the new Adobe Acrobat Connect line of products.

Collect
Easily collect and distribute forms, combine collected forms into a searchable, sortable PDF package, and export collected data into a spreadsheet. (Windows® only)

Control
Control access to and use of Adobe PDF documents, assign digital rights, and maintain document integrity.
Adobe® Acrobat® 8.0 Professional software is the advanced way forbusiness professionals to create, combine, control, and deliver moresecure, high-quality Adobe PDF documents for easy, more securedistribution, collaboration, and data collection.Assemble electronic orpaper files—even Web sites, engineering drawings, and e-mail—intoreliable PDF documents that are easy to share with others using freeAdobe Reader® software.
Manage document reviews, synthesizing feedback from multiple reviewerswhile preserving document format and integrity. Extend commentingcapabilities to anyone using Adobe Reader. Windows users can designintelligent Adobe PDF forms that include business logic, such ascalculations and data validations, to help increase the accuracy ofdata collection while reducing the costs of manual data entry.

New Features in Adobe Acrobat Professional 8.0:
- Combine multiple files into a PDF package
- Auto-recognize form fields
- Manage shared reviews
- Enable advanced features in Adobe Reader
- Permanently remove sensitive information
- Archive Microsoft Outlook e-mail in PDF
- Archive Lotus Notes e-mail
- Save in Microsoft Word
- Enjoy improved performance and support for AutoCAD
- Take advantage of a new, intuitive user interface


eMule下载地址:Adobe.Acrobat.8.Professional.ISO

HTTP下载地址: 高速下载 官方下载

其它下载地址:

ftp://xdowns:newpass@ftp.102.xdowns.com:102/2007/AcroPro80_xdowns.rar

http://big.139.xdowns.com/ftp/2007/AcroPro80_xdowns.rar

http://big.102.xdowns.com/ftp/2007/AcroPro80_xdowns.rar

thunder://QUFmdHA6Ly94ZG93bnM6bmV3cGFzc0BmdHAuMTAyLnhkb3ducy5jb206MTAyLzIwMDcvQWNyb1BybzgwX3hkb3ducy5yYXJaWg==

注册机Adobe Keygen和破解激活补丁请去我的网盘下载:http://disk.qdhsoft.com/?mcxiaoke

附激活方法(注册机使用方法):

(1)软件解压之后开始正式安装,会要求输入一个序列号,打开注册机,点击Generate Serial,把生成的第一行序列号拷进去
(2)之后安装程序会提示再次输入一个序列号(这个我大致看了下,应该是软件升级用的),把第二行序列号拷进去
(3)一路Next安装结束,首次打开Acobat,会要求激活。点操作界面中间 “激活选项”,选择“电话激活”,复制到注册机,点Activate,把生成激活码复制到软件激活界面,点激活即可。

安装时用序列号:111810261991678560422846 破解补丁下载后解压,复制到安装目录X:\Program Files\Adobe\Acrobat 8.0\Acrobat 替换同名文件即可。

注:只使用注册机或破解补丁中的一种,不要同时使用。

2008-04-25更新Adobe全系列注册机下载地址:

http://hi.baidu.com/mcxiaoke/blog/item/47aba8ec5846682262d09fab.html

http://www.namipan.com/d/Adobe%20Keygen.rar/6d954f46bfa5e4fabb711ec15af28c300338c8a2f4701f00

Microsoft Office Enterprize 2007

Q9GTH-FJW8K-RTMCC-HPHRQ-KDBYJ

2012年1月13日星期五

IVORY安装求助 - 音乐创作/编曲/MIDI制作 - 中国专业音乐网 - Powered by ry168.net

IVORY安装求助 - 音乐创作/编曲/MIDI制作 - 中国专业音乐网 - Powered by ry168.net

【 PC 】Synthogy Ivory Italian Grand 安装说明

时间:2010-12-11 15:22:36 来源:音软天堂 作者:音软天堂

首先,请在本站将这套音色下载完整并解压缩,解压后的文件如下图所示:

在开始安装这套象牙钢琴扩展音色库之前,请确定您的电脑中已经正确安装了Synthogy.Ivory.v1.5。
个别杀毒软件会对音色的注册机程序误报病毒,请暂时关闭您的杀毒软件。
首先请使用虚拟光驱软件,将名称为【ItalianGrand1.iso】的第一张光盘镜像文件载入虚拟光驱。载入后,请打开镜像文件所在的虚拟光驱,会看到如下图所示的文件内容:
请双击【Install_Italian_Grand_Expanion_Pack_for_Ivory.exe】运行安装程序,运行后会看到安装提示窗口,如下图:
请点击【Next】按钮继续,会看到欢迎窗口,如下图:
请点击【Next】按钮继续,会看到自述信息窗口,如下图:
请点击【Next】按钮继续,会看到许可协议提示窗口,如下图:
请点击【Yes】按钮继续,会看到音色库安装目录设置窗口,如下图:
您可以在目录栏中输入您电脑中Ivory钢琴的音色库目录所在位置,或点击【Browse】按钮来选择音色库目录所在位置,这套扩展音色库必须安装在原来的音色库目录中,选择好以后,点击【Next】按钮继续,会看到安装类型选择窗口,如下图:
窗口中上方的RTAS代表安装RTAS格式插件,这是用于ProTools软件的插件格式,VST是用于Cubase等软件的插件格式,如果您的电脑中没有ProTools软件的话,则不需要勾选RTAS选项。下面的选项是安装音色库,请勾选。设置好以后请点击【Next】按钮继续,会看到安装就绪窗口,如下图:
点击【Next】按钮开始安装。
首先会看到一个插件目录选择窗口,如下图:
请在这里正确选择您的电脑中共用的VST插件目录,以便在音序器软件中可以正确找到这个插件。选择好以后点击【OK】按钮继续,会看到音色库安装进度窗口,如下图:
第一张DVD中的音色库安装完成后,会弹出一个提示信息,如下图:
这是提示您插入第二张DVD,请在下载后并解压出来的文件中,找到第二张DVD光盘镜像文件,并载入虚拟光驱,如下图:
将第二张DVD载入虚拟光驱后,点击提示窗口中的【确定】按钮,如下图:
点击【确定】按钮后,第二张DVD会开始自动安装。
第二张DVD中的音色库安装完成后,会弹出一个提示信息,如下图:
这是提示您插入第三张DVD,请在下载后并解压出来的文件中,找到第三张DVD光盘镜像文件,并载入虚拟光驱,如下图:
将第三张DVD载入虚拟光驱后,点击提示窗口中的【确定】按钮,如下图:
点击【确定】按钮后,第三张DVD会开始自动安装。
第三张DVD中的音色库安装完成后,会弹出一个提示信息,如下图:
这是提示您插入第四张DVD,请在下载后并解压出来的文件中,找到第四张DVD光盘镜像文件,并载入虚拟光驱,如下图:
将第四张DVD载入虚拟光驱后,点击提示窗口中的【确定】按钮,如下图:
点击【确定】按钮后,第四张DVD会开始自动安装。
第四张DVD中的音色库安装完成后,会弹出一个提示信息,如下图:
这是提示您插入第五张DVD,请在下载后并解压出来的文件中,找到第五张DVD光盘镜像文件,并载入虚拟光驱,如下图:
将第五张DVD载入虚拟光驱后,点击提示窗口中的【确定】按钮,如下图:
第五张DVD中的音色库安装完成后,窗口最后一行会出现【Installation has successfully completed】,代表所有音色库全部安装完成,如下图:
请点击【Quit】按钮退出安装程序。
接下来进行注册激活。
请到您硬盘中的音色库目录中,找到名称为【Authorize Ivory.exe】的激活程序,如下图:
双击这个【Authorize Ivory.exe】运行激活程序。然后请到下载并解压出来的目录中找到名称为【Keygen.exe】的注册机程序,如下图:
双击这个【Keygen.exe】运行注册机,接下来进行注册激活,一共分为5步,如下图:
第一步:在注册机程序界面第一行的菜单中,选择【Ivory 1.x Plug-in/Application】。
第二步:将激活程序界面上方Machine ID后面显示的数字,填入注册机窗口第二行。
第三部:点击注册机程序界面左下角的【Generate】按钮,激活码会显示在注册机界面第三行中。
第四步:请将注册机界面第三行中的激活码复制到激活窗口最下面的输入框中。
第五步:点击激活程序界面右下角的【OK】按钮进行验证。
如果您的操作正确的话,会看到如下图所示的激活成功提示窗口:
接下来要对新安装的扩展音色库进行激活。
请再次运行音色库目录中的激活程序,如下图:
运行后,在激活程序窗口中您会看到比刚才多出的一行文字,如下图:
这行文字代表现在是要激活Italian这套扩展音色库,请按以下5步进行激活,如果您已经关闭了注册机程序,请重新打开注册机,注册步骤如下:
第一步:在注册机程序界面第一行的菜单中,选择【Italian Grand Expansion(EP1)】。
第二步:将激活程序界面上方Machine ID后面显示的数字,填入注册机窗口第二行。
第三部:点击注册机程序界面左下角的【Generate】按钮,激活码会显示在注册机界面第三行中。
第四步:请将注册机界面第三行中的激活码复制到激活窗口最下面的输入框中。
第五步:点击激活程序界面右下角的【OK】按钮进行验证。
如果您的操作正确的话,会看到如下图所示的激活成功提示窗口:
点击【确定】按钮完成激活。
现在您就可以在您的音序器软件中加载这个钢琴音色插件了,并在音色选择窗口中,会看到刚刚安装好的Italian扩展音色库。如下图:
到这里,这套扩展音色就安装完成了,祝您好运。
13
来顶一下
返回首页
返回首页
上一篇:【 PC 】Synthogy Ivory v1.5 象牙钢琴安装说明下一篇:【 PC 】E-MU Proteus VX and Vintage X Pro Collection安装说明

2012年1月3日星期二

怎样禁用popwndexe.exe

怎样禁用popwndexe.exe:

'via Blog this'
提示:点击正文左上角的"我也要收藏"可将文章保存到"我的个人图书馆"中,然后可以拷贝自己文章的内容!

您在网上读到好文章时想拷贝并保存到自己的电脑中吗?现在您不用再这样做了!

360doc个人图书馆----知识管理 智交天下!
保存:保存网上看到的及自己电脑中的文章资料
管理:文件夹分类管理,百度式搜索查找
分享:大众分享,好友分享,圈子分享