为什么K不了动画啊,一直提示 must be run as pid 1marked as Legacy

unity3d(1)
选中动画clip,在Inspector中点击Debug
选择Animation Type为1。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:14964次
排名:千里之外
(1)(2)(8)(1)(3)(1)From DD-WRT Wiki
(Redirected from )
These are instructions for the WRT54G2 V1.0 ONLY
This new wiki information is up to date and complete.
Follow it rather than the old wiki material below, which is being maintained only for purposes of completeness.
1. Download
2. Download
(Windows tftp client)
4. Reset the router to defaults on the Linksys Admin page, and let it reboot
or manually reboot it after its finished.
Read the peacock announcement
and take special note of number 11, (how to tftp).
5. Set your computer to a static IP address of 192.168.1.8 and 255.255.255.0 for a mask
and plug ethernet cable into LAN port of the G2v1 unit.
6. Log in admin page (username is blank, password = admin) and navigate to firmware
upgrade page. Browse to the VxWorksKiller-G2V1-new.bin file, press Upgrade and wait 120
seconds for it to reboot on its own, if it does not, then powercycle the router manually.
Wait another 120 seconds and reboot it again. Router should now be listening for tftp
transfer of dd-wrt firmware.
7. Run tftp.exe (mentioned in step 3 above), to avoid issues open as administrator.
Server: 192.168.1.1
Password: (Leave Blank)
File: click browse then find: "dd-wrt.v24-10709_NEWD_micro.bin" (from step 2)
Tftp the DD-WRT firmware to the router, use "dd-wrt.v24-10709_NEWD_micro.bin"
that you downloaded in step 2;
after sucessful tftp, wait 3 min for
the router to finish writing new nvram deafults, etc... It should reboot on its own at
least two times, so give it 3 min and then go to
(If it not reboot
on its own, wait another 1 min, and then power cycle it)
8. When if finishes booting up...do a hard reset on the unit...let it boot again,
and configure.
9. Upgrade the NEWD_Micro.bin build 12548 after you have dd-wrt running, following the steps in note 1 of the peacock announcement
10. Don't forget to set your computer back to automatically obtaining DHCP and DNS.
11. Restart your internet browser (Avoids )
12. Check for recommended builds .
Please follow the NEW WIKI MATERIAL guidelines for flashing, above.
Process developed by Eko
Wiki created by Doramius
Linksys WRT54G2 Flash Instructions
A big thanks to Eko for making this available.
Eko has created a new 1 step process that makes TFTPing the prep/killer file unnecessary.
We will work to update this wiki-entry and possibly include some pictures.
Until then, refer to the ReadMe file in Eko's Downloads.
" These instructions below obsolete - please use new one step process set out above, no need to tftp the prep/killer file any longer.
A single killer file can now be loaded via the Linksys Update panel. (prep is no longer needed) See
file from my downloads&!!!
Unlike classic WRT54 versions, It is not possible to upgrade directly via stock Linksys web interface. WRT54G2 runs vxworks-based firmware and requires a special procedure outlined below. (Once dd-wrt is installed, other dd-wrt versions can be flashed from the web interface, as usual).
Supported firmware versions:
It is possible to flash either Micro or
micro-plus_ssh versions. For description of Micro features, see .
The current recommended builds of firmware can be found .
If you have a flashing power button problem and it continues to flash for indefinite period, the router is not bricked and can be reflashed (I did this with a V1 router and this WIKI is only for the V1.0). This normally happens when the flash is corrupted from a firmware upgrade. In order to fix this download the latest firmware from linksys and put the router in management mode by doing the following:
1. Connect power and Connect to a PC using any of the 1-4 Ethernet ports. Set up the PC to do 10Mbps Half duplex.
2. Open a browser, preferably Mozilla Firefox and type 192.168.1.1 in the address bar [dont press enter yet].
3. Press and hold reset button for 30 seconds.
4. While holding the reset button unplug power and wait 30 seconds.
5. While holding the reset button plug the power back.
6. While holding the reset button press enter in Firefox. It should show a minimal Management Mode screen. With a place to browse for your firmware file.
7. While holding the reset button, point to your firmware file and press upgrade.
8. Keep holding the reset for atleast 3 more minutes or until the router comes back and shows success and asks you to recycle power.
Viola, after the contortion act, you should have a working router again.
. You must use Linksys tftp because normal tftp cannot authenticate with a password
Download the dd-wrt firmware itself from .
Use micro or micro-plus or micro-plus_ssh version. NB: Mini is not the same as micro. Mini versions are not compatible and may brick the router.
Which build to use&? The original instructions used 10709 , but some people reported that 11536
worked for them when other versions did not work.
Version must be marked as NEWD, not VINT (some images do not have the NEWD/VINT distinction-- these are NEWD).
Download vxworksprep
and vxworkskiller
Reset the router to defaults on the Linksys Admin page, and let it reboot or manually reboot it after it is finished.
Set your computer to a static IP address of 192.168.1.10 and 255.255.255.0 for a mask and plug Ethernet cable into LAN port of the G2v1 unit. You can connect to any port labeled 1-4, just not the Internet port.
If you are running Windows, disable Windows Firewall for your home or work (private) network. Windows Firewall can be found under Control Panel.
Close all browser windows. Start the Linksys's tftp.exe utility, set IP to 192.168.1.1 and browse to the VxWorksPrep-G2V1.bin enter password = admin, and click Upgrade. Wait 60 seconds for it to reboot on its own. If it does not, then power cycle the router manually. Important: even if your tftp is not working properly, do not resort to upload via web interface. Yes, you can upload vxworksprep via Linksys web interface, but you will get stuck on the next step (vxworkskiller) which only works with tftp. See TFTP troubleshooting below.
DO NOT open any browser windows. Again, start Linksys's tftp.exe utility and browse to the VxWorksKiller-G2V1.bin enter password = admin, and click Upgrade. Wait 2 min for it to reboot on its own. If it does not, then power cycle the router manually. Note: normal tftp doesn't work, this step requires a tftp utility supporting password authentication.
Tftp the DD-WRT firmware to the router, using
(or latest version) from the folder where you go after successful tftp, wait 3 min for the router to finish writing new nvram defaults, etc... It should reboot on it's own at least two times, so give it the 3 min and then open a browser and type 192.168.1.1 in the address field. If it does not reboot on its own, wait another 1 min, and then power cycle it.
When it finishes booting....do a
on the unit and let it boot again.
At this point you can upload a newer firmware via DD-WRT web interface (after router has booted with the new firmware do a
again). Firmwares for Linksys WRT54G2 can be found at . Use only NEWD_micro, NEWD_micro-plus or NEWD_micro-plus_ssh build, else you will brick your router! Currently
recommended builds can be found . About newest tested firmware version you can found info in .
Configure the unit and don't forget to set your computer back to automatically obtaining DHCP and DNS. Also remember to re-enable Windows Firewall.
using Brainslayer's VxWorksRevert tool for the WRT54GSv7 using the steps below. This has been confirmed by at least two other people.
Download the
image and save it to a memorable location you can browse to in the next step.
Log into DD-WRT on your router via the web interface and go to Administration -& Firmware Upgrade, selecting the VxWorksRevert.bin file that you've just downloaded as the new firmware.
Wait at least 2 minutes for the router to update. The power light on the device will begin flashing.
Power cycle the router. When turning back on, the power light will still continue to flash but you will now be able to access the Management Mode at . NOTE: At this point, there is no wireless enabled, so if you are flashing wirelessly you will need to plug in an Ethernet cable to update the router.
Download the Linksys WRT54GSv7 firmware
and upload it via the Management Mode web interface. On successful completion, power cycle the router.
After 45 seconds or so, browsing to
will now display the default Linksys firmware (albeit labelled as a WRT54GSv7).
Download the
and upload it via the Firmware Upgrade page on the web interface. Wait for it to reboot.
Tada! Your router is now back to stock factory firmware.
Reverting through JTAG results in a generic mac address that can be fixed with mac clone.
OK...anyone willing to try it with JTAG...here is a "generic" original Linksys wholeflash for the WRT54G2V1.
It has an embedded MAC address of 00:21:29:00:00:01
This MUST be loaded back to the unit with JTAG...no exceptions.
This is an altered/edited wholeflash.bin file from my virgin unit...before dd-wrt was loaded.
[EDIT] - reported to be working.
- This is vworks, not linux
I followed the Reverting via VxWorksRevert exactly but couldn't get past step about uploading the bin file to the Management Mode web interface.
It would NEVER work.
After troubleshooting the issue, I re-downloaded the .bin file and tried it again and it worked.
So, if you get "Upgrade Failed" when uploading bin files to the management mode, try re-downloading the .bin file.
It may be necessary to completely close and reopen the browser, it sometimes will return
to a management
screen, if you only refresh the browser after upgrading. Just close the browser
and try again.
WARNING: It is currently not possible to restore Linksys firmware after DD-WRT has been flashed. The only possibility is a full JTAG restore.
Credited to Soul_Est
Disclaimer: DON'T DO THIS IF YOU ARE UNSURE ABOUT HOW TO FOLLOW THROUGH ON ANY OF THE STEPS! YOU CAN EASILY BRICK YOUR ROUTER BY NOT FOLLOWING THESE STEPS FULLY!
This How-To is for anyone who wishes to install DD-WRT on their WRT54G2v1 without using any of the Linksys tftp programs. This would allow you to install DD-WRT from almost any OS as long as it's configured correctly and includes a tftp client and ping program.
I discovered how to do this thanks to dvs.
The How-To is based on the official instructions for installing DD-WRT on the WRT54G2 and my own experiences installing Eko's 13000 NEWD Micro Plus w/ SSH (Sept 30, 2009) which you can get here:
By following this - you will (with it disconnected from the computer)be:
Downloading the correct files needed to install DD-WRT to your computer
Hard resetting your router
Configuring your computer with a static IP address on the same subnet as the router (after connecting the computer to one of the router's LAN ethernet ports)be:
Pinging the router at it's IP address CONTINUOUSLY and setting up tftp
Connecting the computer to the router and checking for issues
Putting the router in maintenance mode
tftp'ing VxWorksPrep-G2V1.bin to the router
tftp'ing VxWorksKiller-G2V1.bin to the router
tftp'ing a Micro build of DD-WRT to the router
After 5 minutes, power cycle the router and check for issues
Hard reset the router, wait 5 minutes and configure DD-WRT to suit
This How-To does not contain instructions on installing DD-WRT from any BSD or BSD-like operating system except for Mac OS X and assumes that you have: read the Peacock thread, read the official installation instructions for the WRT54G2 v1 and that you know how to use the OS you choose to install DD-WRT this includes the Command Prompt/Terminal.
IF THERE ARE ANY ERRORS IN THE INSTRUCTIONS, PLEASE INFORM ME!
Download the the files needed for installing DD-WRT to the router. You'll need VxWorksPrep-G2V1.bin, VxWorksKiller-G2V1.bin, and one of the Micro builds of your choice.
BEFORE following through with the rest of these steps, make sure the computer is DISCONNECTED from your router and do a HARD RESET or 30/30/30! It is in the official installation instructions for ALL routers and is included in many install guides on these forums. Please, BEFORE following through with the rest of these steps, do a HARD RESET or 30/30/30!
Configure your computer with a static IP of 192.168.1.x (x can have any value from 2-254) and a subnet mask of 255.255.255.0.
Open 2 Command Prompt/Terminal windows or just work with the CLI if that's what you're using but be logged into at least 2 virtual terminals. On one of them issue the command:
ping (-t (for Windows only)) 192.168.1.1
(the router's IP address) which only give you multiple "Request timeouts" for now, while in the other Command Prompt/Terminal window setup tftp to upload the files to the router by issuing these commands:
tftp 192.168.1.1
timeout 60
DO NOT EXIT AFTER THE LAST COMMAND IS ENTERED! Instead, type:
put VxWorksPrep-G2V1.bin
at the prompt. DO NOT PRESS ENTER YET!
Connect the computer the router making sure the plug the ethernet cable into one of the four ETHERNET ports, NOT THE INTERNET PORT. In the Command Prompt/Terminal window where ping is running you should see responses such as this:
64 bytes from 192.168.1.1: icmp_seq=3918 ttl=64 time=1.812 ms
This is good.
Put the router in maintenance mode by the doing the following:
A- Power off (unplug) the router and wait for 30 seconds. Make sure to hold the tip of a pointy object (a pen works best) so that it is just touching the reset button on the router. In the pinging Command Prompt/Terminal window, you'll see responses like this:
Request timeout for icmp_seq 3908
This is also good.
B- PAY ATTENTION THE COMMAND PROMPT/TERMINAL WINDOW WITH THE PING RUNNING. Also make sure that the window in which the tftp commands where entered is in focus. Power (plug in) the router and immediately after, press and hold the reset button for ~5 seconds. You'll then get these responses:
64 bytes from 192.168.1.1: icmp_seq=3967 ttl=100 time=5.971 ms
64 bytes from 192.168.1.1: icmp_seq=3968 ttl=100 time=1.695 ms
Now for the VxWorksPrep.
HIT THE ENTER KEY NOW AS THE RESPONSES ARE ONLY FOR 2 SECONDS! In the window with ping running you'll see these responses:
64 bytes from 192.168.1.1: icmp_seq=4003 ttl=100 time=5.646 ms
64 bytes from 192.168.1.1: icmp_seq=4004 ttl=100 time=1.654 ms
64 bytes from 192.168.1.1: icmp_seq=4005 ttl=100 time=2.850 ms
64 bytes from 192.168.1.1: icmp_seq=4006 ttl=100 time=3.148 ms
64 bytes from 192.168.1.1: icmp_seq=4007 ttl=100 time=2.328 ms
64 bytes from 192.168.1.1: icmp_seq=4008 ttl=100 time=3.510 ms
64 bytes from 192.168.1.1: icmp_seq=4009 ttl=100 time=2.469 ms
64 bytes from 192.168.1.1: icmp_seq=4010 ttl=100 time=2.803 ms
64 bytes from 192.168.1.1: icmp_seq=4011 ttl=100 time=1.987 ms
64 bytes from 192.168.1.1: icmp_seq=4012 ttl=100 time=4.074 ms
64 bytes from 192.168.1.1: icmp_seq=4013 ttl=100 time=2.356 ms
The VxWorksPrep-G2V1.bin will be tftp'ed to the router. Wait 1 minute for the router to reboot. If successful, the response to the pings will look like this:
64 bytes from 192.168.1.1: icmp_seq=3092 ttl=100 time=1.074 ms
64 bytes from 192.168.1.1: icmp_seq=3093 ttl=100 time=0.717 ms
64 bytes from 192.168.1.1: icmp_seq=3094 ttl=100 time=0.728 ms
64 bytes from 192.168.1.1: icmp_seq=3095 ttl=100 time=0.699 ms
64 bytes from 192.168.1.1: icmp_seq=3096 ttl=100 time=0.633 ms
64 bytes from 192.168.1.1: icmp_seq=3097 ttl=100 time=0.706 ms
64 bytes from 192.168.1.1: icmp_seq=3098 ttl=100 time=0.715 ms
64 bytes from 192.168.1.1: icmp_seq=3099 ttl=100 time=0.651 ms
64 bytes from 192.168.1.1: icmp_seq=3100 ttl=100 time=0.647 ms
64 bytes from 192.168.1.1: icmp_seq=3101 ttl=100 time=0.641 ms
64 bytes from 192.168.1.1: icmp_seq=3102 ttl=100 time=0.642 ms
The router is now ready for VxWorksKiller.
In the same window as where you entered the tftp commands run the command for tftp'ing VxWorksKiller-G2V1.bin to the router:
put VxWorksKiller-G2V1.bin
You'll get the same responses in the window running ping with as when you tftp'ed the VxWorksPrep-G2V1.bin to the router. Wait 2 minutes for the router to reboot. When the router reboots the responses from the pings will have a ttl of 100.
In the tftp window, run the command:
put dd-wrt.v24(rest of the file's name).bin
You'll get more ttl=100 responses from the pinging. Once the tftp has finished, the router WILL reboot. LEAVE THE ROUTER ALONE AND TAKE 5!
Power cycle the router (unplug and plug in the power cord), then hard reset the router again. When router fully boots up, open up a web browser (Firefox, Internet Explorer or Safari) and go to 192.168.1.1. If the you get a page asking you to enter a new username and password, success! If not go back to step 6 (provided that you didn't close any windows, if so go back to step 4) and try again.
Once you have succeeded in getting DD-WRT on the router, hard reset the router again, wait 5 minutes, go to 192.168.1.1 and go about configuring DD-WRT to suit.
YOU'RE DONE!
Thanks BrainSlayer for the generic and generic w/ oslrd Micro builds, Eko for the brilliant 13000 Micro Plus w/ SSH, Murrkf for the information rich Peacock thread, dvs who first discovered how to put a NEWD compatible router in maintenance mode, toolman667 for the tftp commands and everyone who worked on the wiki article for the WRT54G2.
for more information about dd-wrt on WRT54G2, discussion of problems etc.
Linux users can use this tool:
Linksys tftp.exe and tftp2.exe seem to have a problem working through Vista.
Several users have complained of connection problems using Vista (see below).
However, tftp.exe and tftp2.exe seem to work well in XP.
Try disabling Windows firewall in Vista before using tftp.exe. Try using another tftp program that allows a password or set the password to blank and use the Vista command line tftp program.
Empty password workaround to use standard tftp: If you cannot use Linksys tftp and must use standard tftp that does not take password, there is a workaround from Eko: Login to the linksys and set the password to be empty (no characters at all). Save and exit the router. Then you can uses command line tftp without password.
Possible workaround for tftp on Vista and Windows 7: Right-click on the "tftp.exe" file that you downloaded and select "Properties" from the menu.
At the bottom of the Properties dialog, you will see "Security: This file came from another computer and might be blocked to help protect this computer."
Click on the "Unblock" button next to that and then click "OK".
tftp should work after that.
In particular, if you get cgi errors after installation of dd-wrt, try a .
Try instructions from the .
If your router is bricked, follow instruction by Shawn360:
You need to make a jtag cable or buy one from eBay jtag cable Linksys. You have to install a simple pin header . Soldering is not hard, but if you don't want to solder you can use something like Wire Glue from , the cheapest of these type of glues. Just put it on let it dry no soldering.
Then use Tjtagv2 program to unbrick your router. EJTAG De-Brick tool:
Use Tjtagv2 to upload WRT54G2 "wholeflash" image from
If you found some bug in dd-wrt:
Check it is not already reported
Report the bug
Tornado and redhawk0 for their help.
Thx to Ick & gfunk911 for donating routers.
Forum Reference:SPQuery failed: index codeforge: syntax error, unexpected $end near ''.
>> ExcelDnaLoader.cpp
ExcelDnaLoader.cpp ( 文件浏览 )
Copyright (C)
Govert van Drimmelen
This software is provided 'as-is', without any express or implied
In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must n you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
Govert van Drimmelen
govert@icon.co.za
// TODO: Change to the .Net 2.0+ hosting interface IClrRuntimeHost,
// so that we can set the safe AppDomain flags when loading.
#include &stdafx.h&
#include &DetectFx.h&
#include &ExcelDna.h&
#include &ExcelDnaLoader.h&
#include &resource.h&
#define CountOf(x) sizeof(x)/sizeof(*x)
const int MAX_MSG = 1024;
const CString CLR_VERSION_20 = L&v2.0.50727&;
static HMODULE hModuleC
// These don't use ATL classes to give us explicit control over when CLR is called
static IUnknown* pAppDomain_ForUnload = NULL;
static ICorRuntimeHost* pHost_ForUnload = NULL;
// Temp file to be used if we need to write .config from resources.
static CString tempConfigFileName = &&;
// Forward declarations for functions defined in this file.
HRESULT LoadClr(CString clrVersion, ICorRuntimeHost **ppHost);
HRESULT LoadClrMeta(CString clrVersion, ICLRMetaHost* pMetaHost, ICorRuntimeHost **ppHost);
HRESULT LoadClr20(ICorRuntimeHost **ppHost);
HRESULT LoadAppDomain(CComPtr&ICorRuntimeHost& pHost, CString addInFullPath, bool createSandboxedAppDomain, bool shadowCopyFiles, CComPtr&_Assembly&& loaderAssembly, CComQIPtr&_AppDomain&& addInAppDomain, bool& unloadAppDomain);
HRESULT LoadLoaderIntoAppDomain(CComQIPtr&_AppDomain&& pAppDomain, CComPtr&_Assembly&& pLoaderAssembly, bool forceFromBytes);
void ShowMessage(int headerId, int bodyId, int footerId, HRESULT hr = S_OK);
HRESULT CreateTempFile(void* pBuffer, DWORD nBufSize, CString& fileName);
HRESULT DeleteTempFile(CString fileName);
HRESULT GetClrOptions(CString& clrVersion, bool& shadowCopyFiles, bool& createSandboxedAppDomain);
HRESULT GetDnaHeader(bool showErrors, CString& header);
HRESULT ParseDnaHeader(CString header, CString& addInName, CString& runtimeVersion, bool& shadowCopyFiles, CString& createSandboxedAppDomain);
HRESULT GetAttributeValue(CString tag, CString attributeName, CString& attributeValue);
BOOL IsRunningOnCluster();
BOOL IsBufferUTF8(BYTE* buffer, DWORD bufferLength);
CStringW UTF8toUTF16(const CStringA& utf8);
// COR function pointer typedefs.
typedef HRESULT (STDAPICALLTYPE *pfnGetCORVersion)(LPWSTR pBuffer,
DWORD cchBuffer,
DWORD* dwLength);
typedef HRESULT (STDAPICALLTYPE *pfnGetVersionFromProcess)(
HANDLE hProcess,
LPWSTR pBuffer,
DWORD cchBuffer,
DWORD* dwLength);
typedef HRESULT (STDAPICALLTYPE *pfnCorBindToRuntimeEx)(
LPWSTR pwszVersion,
LPWSTR pwszBuildFlavor,
DWORD flags,
REFCLSID rclsid,
REFIID riid,
LPVOID* ppv );
typedef HRESULT (STDAPICALLTYPE *pfnCLRCreateInstance)(
REFIID riid,
LPVOID* ppInterface );
// Ensure the CLR is loaded, create a new AppDomain, get the manager loader running,
// and do the ExportInfo hook-up.
bool XlLibraryInitialize(XlAddInExportInfo* pExportInfo)
CComPtr&ICorRuntimeHost& pH
CString clrV
bool shadowCopyF
bool createSandboxedAppD
hr = GetClrOptions(clrVersion, shadowCopyFiles, createSandboxedAppDomain);
if (FAILED(hr))
// SelectClrVersion shows diagnostic MessageBoxes if needed.
// Perhaps remember that we are not loaded?
#ifdef _M_X64
bool allowedVersion = pareNoCase(L&v4.0&) &= 0;
if (!allowedVersion)
ShowMessage(IDS_MSG_HEADER_64NET4,
IDS_MSG_BODY_64NET4,
IDS_MSG_FOOTER_ENSUREVERSION,
hr = LoadClr(clrVersion, &pHost);
if (FAILED(hr) || pHost == NULL)
// LoadClr shows diagnostic MessageBoxes if needed.
// Perhaps remember that we are not loaded?
// If all is fine now, also start the CLR (always safe to do again).
hr = pHost-&Start();
if (FAILED(hr))
ShowMessage(IDS_MSG_HEADER_NEEDCLR20,
IDS_MSG_BODY_HOSTSTART,
IDS_MSG_FOOTER_UNEXPECTED,
// Load (or find) the AppDomain that will contain the add-in
CString addInFullPath = GetAddInFullPath();
CComQIPtr&_AppDomain& pAppD
CComQIPtr&_Assembly& pLoaderA
bool unloadAppD
hr = LoadAppDomain(pHost, addInFullPath, createSandboxedAppDomain, shadowCopyFiles, pLoaderAssembly, pAppDomain, unloadAppDomain);
if (FAILED(hr))
// Message already shown by LoadAppDomain
CComBSTR appDomainN
pAppDomain-&get_FriendlyName(&appDomainName);
CComPtr&_Type& pXlAddInT
hr = pLoaderAssembly-&GetType_2(CComBSTR(L&ExcelDna.Loader.XlAddIn&), &pXlAddInType);
if (FAILED(hr) || pXlAddInType == NULL)
ShowMessage(IDS_MSG_HEADER_APPDOMAIN,
IDS_MSG_BODY_XLADDIN,
IDS_MSG_FOOTER_UNEXPECTED,
CComSafeArray&VARIANT& initA
#ifndef _M_X64
initArgs.Add(CComVariant((INT32)pExportInfo));
initArgs.Add(CComVariant((INT32)hModuleCurrent));
initArgs.Add(CComVariant((INT64)pExportInfo));
initArgs.Add(CComVariant((INT64)hModuleCurrent));
initArgs.Add(CComVariant(addInFullPath.AllocSysString()));
CComVariant initRetV
#ifndef _M_X64
hr = pXlAddInType-&InvokeMember_3(CComBSTR(&Initialize32&), (BindingFlags)(BindingFlags_Static | BindingFlags_Public | BindingFlags_InvokeMethod), NULL, target, initArgs, &initRetVal);
hr = pXlAddInType-&InvokeMember_3(CComBSTR(&Initialize64&), (BindingFlags)(BindingFlags_Static | BindingFlags_Public | BindingFlags_InvokeMethod), NULL, target, initArgs, &initRetVal);
if (FAILED(hr))
ShowMessage(IDS_MSG_HEADER_APPDOMAIN,
IDS_MSG_BODY_XLADDININIT,
IDS_MSG_FOOTER_CHECKINTEGRATION,
// Keep references needed for later host reference unload.
if (unloadAppDomain)
pAppDomain_ForUnload = (IUnknown*)pAppDomain.Detach();
pHost_ForUnload = pHost.Detach();
return initRetVal.boolVal == 0 ? false :
// XlLibraryUnload is only called if we are unloading the add-in via the add-in manager,
// or when the add-in is re-loaded.
// Unload the AppDomain.
void XlLibraryUnload()
if (pHost_ForUnload != NULL)
if (pAppDomain_ForUnload != NULL)
HRESULT hr = pHost_ForUnload-&UnloadDomain(pAppDomain_ForUnload);
pAppDomain_ForUnload-&Release();
pAppDomain_ForUnload = NULL;
if (FAILED(hr))
#if _DEBUG
DebugBreak();
// Unload according to the AppDomainId.
pHost_ForUnload-&Release();
pHost_ForUnload = NULL;
// Also delete the temp .config file, if we made one.
if (tempConfigFileName != &&)
DeleteTempFile(tempConfigFileName);
tempConfigFileName = &&;
// Try to get the right version of the CLR running.
HRESULT LoadClr(CString clrVersion, ICorRuntimeHost **ppHost)
// Check whether the .Net 4+ MetaHost interfaces are present.
// The checks here are according to this blog post:
// /blog/2010/04/selecting-clr-version-from-unmanaged-host.html
1. LoadLibrary mscoree
2. GetProcAddress for CLRCreateInstance. If you get NULL, fall back to legacy path (CorBindToRuntimeEx)
3. Call CLRCreateInstance to get ICLRMetaHost. If you get E_NOTIMPL, fall back to legacy path (same as above)
4. Otherwise, party on the ICLRMetaHost you just got
// If present, load the desired version using the new interfaces.
// If not, check if we want .Net 4+, if so fail, else load old-style.
HRESULT hr = E_FAIL;
HMODULE hMscoree = NULL;
CComPtr&ICLRMetaHost& pMetaH
bool needNet40 = (pareNoCase(L&v4.0&) &= 0);
bool needMetaHost = needNet40;
hMscoree = LoadLibrary(L&mscoree.dll&);
if (hMscoree == 0)
// No .Net installed
// CONSIDER: Doing explicit checking according to /kb/318785
if (needNet40)
ShowMessage(IDS_MSG_HEADER_NEEDCLR40,
IDS_MSG_BODY_LOADMSCOREE,
IDS_MSG_FOOTER_ENSURECLR40 );
ShowMessage(IDS_MSG_HEADER_NEEDCLR20,
IDS_MSG_BODY_LOADMSCOREE,
IDS_MSG_FOOTER_ENSURECLR20 );
hr = E_FAIL;
pfnCLRCreateInstance CLRCreateInstance = (pfnCLRCreateInstance)GetProcAddress(hMscoree, &CLRCreateInstance&);
if (CLRCreateInstance == 0)
// Certainly no .Net 4 installed
if (needMetaHost)
// We need .Net 4.0 but it is not installed
ShowMessage(IDS_MSG_HEADER_NEEDCLR40,
IDS_MSG_BODY_NOCLRCREATEINSTANCE,
IDS_MSG_FOOTER_ENSURECLR40 );
hr = E_FAIL;
// We need only .Net 2.0 runtime and cannot MetaHost.
// Load .Net 2.0 with old code path
hr = LoadClr20(ppHost);
hr = CLRCreateInstance(CLSID_CLRMetaHost, IID_ICLRMetaHost, (LPVOID*)&pMetaHost);
if (FAILED(hr))
// MetaHost is not available, even though we have a new version of MSCorEE.dll
// Certainly no .Net 4 installed
if (needMetaHost)
// We need .Net 4.0 but it is not installed
(文件超长,未完全显示,请下载后阅读剩余部分)
展开> <收缩
下载源码到电脑,阅读使用更方便
还剩0行未阅读,继续阅读 ▼
Sponsored links
源码文件列表
温馨提示: 点击源码文件名可预览文件内容哦 ^_^
15.67 kB 01:24
Excel-DNA465.50 kB 01:24
ExcelDna.dna149.00 B 01:24
ExcelDna.Integration.dll170.50 kB 01:24
ExcelDna.xll543.00 kB 01:24
ExcelDna64.dna171.00 B 01:24
ExcelDna64.xll502.00 kB 01:24
ExcelDnaPack.exe51.50 kB 01:24
4.46 kB 01:24
3.32 kB 01:24
965.00 B 01:24
10.69 kB 01:24
ArrayResizer.dna5.74 kB 01:24
ArrayResizerVB.dna6.07 kB 01:24
AsyncAwaitCS.dna12.31 kB 01:24
5.46 kB 01:24
858.00 B 01:24
2.84 kB 01:24
AsyncFunctions.csproj4.04 kB 01:24
AsyncFunctions.dna101.00 B 01:24
AsyncFunctions.sln917.00 B 01:24
AsyncFunctionsTest.xlsx40.35 kB 01:24
3.51 kB 01:24
7.84 kB 01:24
1.21 kB 01:24
1.42 kB 01:24
448.00 B 01:24
3.81 kB 01:24
6.78 kB 01:24
1.57 kB 01:24
17.44 kB 01:24
AsyncMacros.dna7.28 kB 01:24
6.01 kB 01:24
6.32 kB 01:24
ExcelTaskUtilTestCS.dna1.14 kB 01:24
ExcelTaskUtilTestVB.dna573.00 B 01:24
FsAsync.dna5.46 kB 01:24
2.74 kB 01:24
NativeAsync.dna5.58 kB 01:24
NativeAsyncCancellation.dna3.74 kB 01:24
951.00 B 01:24
ClusterSample.dna4.22 kB 01:24
CompilerV35.dna328.00 B 01:24
770.00 B 01:24
417.00 B 01:24
1.38 kB 01:24
ComServerSample.dna1.81 kB 01:24
ComServerTest.xls34.00 kB 01:24
713.00 B 01:24
CSharp4Dynamic.dna838.00 B 01:24
CustomTaskPane.dna3.24 kB 01:24
CustomTaskPaneVB.dna2.70 kB 01:24
DynamicMethodSample.dna2.88 kB 01:24
ErrorHandler.dna1.18 kB 01:24
Errors.dna311.00 B 01:24
ExcelServicesSample.dna1.47 kB 01:24
ExplicitExports.dna792.00 B 01:24
FSharpSample.dna724.00 B 01:24
GetInfoAddIn.dna2.18 kB 01:24
GetInfoSample.xls111.50 kB 01:24
InteropReference.dna725.00 B 01:24
MoreSamples.dna8.61 kB 01:24
MultiThreadingSample.dna501.00 B 01:24
NetV4.dna671.00 B 01:24
NetV4Parallel.dna1.95 kB 01:24
Optional.dna4.21 kB 01:24
TestPacking.xls33.50 kB 01:24
1.40 kB 01:24
PackConfig.dna324.00 B 01:24
PackConfig.xll.config509.00 B 01:24
160.00 B 01:24
434.00 B 01:24
259.00 B 01:24
PackDep.dna178.00 B 01:24
Child1.dna256.00 B 01:24
Child2.dna196.00 B 01:24
GrandChild.dna190.00 B 01:24
PackDnaTree.dna354.00 B 01:24
PackDna.dna301.00 B 01:24
116.00 B 01:24
450.00 B 01:24
PackLib.dna128.00 B 01:24
116.00 B 01:24
465.00 B 01:24
PackRef.dna305.00 B 01:24
PackSource.dna184.00 B 01:24
633.00 B 01:24
531.00 B 01:24
RecalcEventSample.dna474.00 B 01:24
CommandBars.dna1.46 kB 01:24
CommandBarsAllWays.dna4.01 kB 01:24
m.png1.78 kB 01:24
SharedGroup1.dna1.41 kB 01:24
SharedGroup2.dna1.41 kB 01:24
TestCSharp.dna3.43 kB 01:24
TestDynamic.dna1.43 kB 01:24
TestRibbon.dna3.87 kB 01:24
ExcelRtdServer.dna2.77 kB 01:24
433.00 B 01:24
RealTimeManager.dna2.44 kB 01:24
RealTimeManagerCS.dna2.81 kB 01:24
314.00 B 01:24
RTDObjectWrapper.dna6.04 kB 01:24
143.00 B 01:24
TestRTD.dna7.83 kB 01:24
TestRTD2.dna6.04 kB 01:24
SetValueVB.dna528.00 B 01:24
CSharpAddIn.csproj2.62 kB 01:24
CSharpAddIn.sln911.00 B 01:24
483.00 B 01:24
1.41 kB 01:24
1.76 kB 01:24
SampleCS.dna112.00 B 01:24
13.75 kB 01:24
9.13 kB 01:24
2.81 kB 01:24
27.09 kB 01:24
16.77 kB 01:24
13.21 kB 01:24
93.00 B 01:24
28.07 kB 01:24
47.00 kB 01:24
23.35 kB 01:24
5.77 kB 01:24
7.24 kB 01:24
2.79 kB 01:24
38.61 kB 01:24
6.49 kB 01:24
ExcelDna.Integration.csproj4.43 kB 01:24
ExcelDna.Integration.vs2008.csproj4.16 kB 01:24
2.90 kB 01:24
10.87 kB 01:24
9.11 kB 01:24
10.06 kB 01:24
17.02 kB 01:24
22.15 kB 01:24
22.98 kB 01:24
12.10 kB 01:24
20.35 kB 01:24
916.00 B 01:24
12.63 kB 01:24
1.06 kB 01:24
9.05 kB 01:24
7.31 kB 01:24
LogDisplay.resx5.68 kB 01:24
9.71 kB 01:24
17.73 kB 01:24
1.47 kB 01:24
2.52 kB 01:24
2.95 kB 01:24
63.23 kB 01:24
8.54 kB 01:24
ExcelDna.Loader.csproj3.84 kB 01:24
ExcelDna.Loader.vs2008.csproj3.75 kB 01:24
5.82 kB 01:24
9.10 kB 01:24
4.48 kB 01:24
1.47 kB 01:24
23.71 kB 01:24
12.79 kB 01:24
53.51 kB 01:24
62.99 kB 01:24
29.53 kB 01:24
25.26 kB 01:24
16.67 kB 01:24
ExcelDna.sln7.72 kB 01:24
ExcelDna.vs2008.sln5.51 kB 01:24
ExcelDna.vs2010.sln7.73 kB 01:24
app.config117.00 B 01:24
ExcelDnaPack.csproj4.17 kB 01:24
ExcelDnaPack.vs2008.csproj4.44 kB 01:24
13.33 kB 01:24
1.46 kB 01:24
5.09 kB 01:24
3.63 kB 01:24
101.00 B 01:24
68.53 kB 01:24
ExcelDna.def448.00 B 01:24
2.74 kB 01:24
11.39 kB 01:24
ExcelDna.vcxproj15.42 kB 01:24
ExcelDna.vs2008.vcproj5.80 kB 01:24
ExcelDna.vs2010.vcxproj15.41 kB 01:24
34.27 kB 01:24
1.18 kB 01:24
270.30 kB 01:24
4.64 kB 01:24
39.65 kB 01:24
2.62 kB 01:24
301.00 B 01:24
1.43 kB 01:24
965.00 B 01:24
1.13 kB 01:24
3.67 kB 01:24
576.00 B 01:24
1.36 kB 01:24
145.00 B 01:24
9.41 kB 01:24
3.82 kB 01:24
2.71 kB 01:24
11.79 kB 01:24
44.16 kB 01:24
2.16 kB 01:24
944.00 B 01:24
4.09 kB 01:24
3.20 kB 01:24
3.44 kB 01:24
4.39 kB 01:24
Sponsored links
评价成功,多谢!
下载exceldna-79914.zip
CodeForge积分(原CF币)全新升级,功能更强大,使用更便捷,不仅可以用来下载海量源代码马上还可兑换精美小礼品了
您的积分不足
支付宝优惠套餐快速获取 30 积分
10积分 / ¥100
30积分 / ¥200原价 ¥300 元
100积分 / ¥500原价 ¥1000 元
订单支付完成后,积分将自动加入到您的账号。以下是优惠期的人民币价格,优惠期过后将恢复美元价格。
支付宝支付宝付款
微信钱包微信付款
更多付款方式:、
您本次下载所消耗的积分将转交上传作者。
同一源码,30天内重复下载,只扣除一次积分。
鲁ICP备号-3 runtime:Elapsed:20.190ms 27.69
登录 CodeForge
还没有CodeForge账号?
Switch to the English version?
^_^"呃 ...
Sorry!这位大神很神秘,未开通博客呢,请浏览一下其他的吧}

我要回帖

更多关于 as i must disagree 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信